Skip to content

Commit dfe60ed

Browse files
authored
Serve custom 404 pages from Django (#5644)
Serve custom 404 pages from Django
2 parents 7f79499 + c0528a0 commit dfe60ed

File tree

2 files changed

+4
-9
lines changed

2 files changed

+4
-9
lines changed

readthedocs/core/views/__init__.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,12 @@
1414
from django.http import HttpResponseRedirect, Http404, JsonResponse
1515
from django.shortcuts import render, get_object_or_404, redirect
1616
from django.views.generic import TemplateView
17-
17+
from django.views.static import serve as static_serve
1818

1919
from readthedocs.builds.models import Version
2020
from readthedocs.core.utils.general import wipe_version_via_slugs
2121
from readthedocs.core.resolver import resolve_path
2222
from readthedocs.core.symlink import PrivateSymlink, PublicSymlink
23-
from readthedocs.core.views.serve import _serve_file
2423
from readthedocs.projects.constants import PRIVATE
2524
from readthedocs.projects.models import HTMLFile, Project
2625
from readthedocs.redirects.utils import (
@@ -205,7 +204,7 @@ def resolve_404_path(project, version_slug=None, language=None):
205204
project.slug,
206205
slug,
207206
)
208-
r = _serve_file(request, filename, basepath)
207+
r = static_serve(request, filename, basepath)
209208
r.status_code = 404
210209
return r
211210

readthedocs/rtd_tests/tests/test_doc_serving.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -201,14 +201,11 @@ def test_custom_robots_txt(self, os_mock, open_mock):
201201
ROOT_URLCONF=settings.SUBDOMAIN_URLCONF,
202202
)
203203

204-
@patch('readthedocs.core.views.serve.os')
204+
@patch('readthedocs.core.views.static_serve')
205205
@patch('readthedocs.core.views.os')
206-
def test_custom_404_page(self, os_view_mock, os_serve_mock):
206+
def test_custom_404_page(self, os_view_mock, static_serve_mock):
207207
os_view_mock.path.exists.return_value = True
208208

209-
os_serve_mock.path.join.side_effect = os.path.join
210-
os_serve_mock.path.exists.return_value = True
211-
212209
self.public.versions.update(active=True, built=True)
213210

214211
factory = RequestFactory()
@@ -221,7 +218,6 @@ def test_custom_404_page(self, os_view_mock, os_serve_mock):
221218
middleware.process_request(request)
222219
response = server_error_404_subdomain(request)
223220
self.assertEqual(response.status_code, 404)
224-
self.assertTrue(response['X-Accel-Redirect'].endswith('/public/en/latest/404.html'))
225221

226222
@override_settings(
227223
USE_SUBDOMAIN=True,

0 commit comments

Comments
 (0)