处理 Django Rest Framework 404 页面定向反应应用 home/index
Handling Django Rest Framework 404 page directed to react app's home/index
我有 DRF 项目,react 项目也作为应用程序在 Django 项目中。 React 应用程序的名称是 frontend
.
INSTALLED_APPS = [
....
'frontend'
]
前端结构如下,
项目中唯一的代码在视图中,
def index(request):
return render(request, "build/index.html")
而 URL 是,
from frontend.views import index
urlpatterns += [path("", index, name="index")]
现在我想做的是,如果浏览器的 URL 响应是 404,那么我不想显示 django 的 404 页面,而是转到 [=14= 的 home/index ] 反应应用程序。我试图在 urls.py
中添加 handler404 = 'frontend.views.index'
,但它显示 500 内部错误而不是 404 或反应应用程序的索引。
任何帮助将不胜感激。提前致谢。
这在常规 django 项目中对我有用。
def handler404(request, exception):
return render(request, '404.html', status=404)
这里,404.html
是我的自定义模板文件。
在我的主要 urls.py:
handler404 = myapp.views.handler404
handler500 = myapp.views.handler500
from frontend.views import index
urlpatterns += [path("", index, name="index")]
在上面的代码中,您定义任何 url 都将转到主页,因为您使用了“”。您必须对索引页使用 url 正则表达式。
from django.urls import re_path, include
urlpatterns += [re_path(r'^$', index, name="index")]
这对你有用。
我有 DRF 项目,react 项目也作为应用程序在 Django 项目中。 React 应用程序的名称是 frontend
.
INSTALLED_APPS = [
....
'frontend'
]
前端结构如下,
项目中唯一的代码在视图中,
def index(request):
return render(request, "build/index.html")
而 URL 是,
from frontend.views import index
urlpatterns += [path("", index, name="index")]
现在我想做的是,如果浏览器的 URL 响应是 404,那么我不想显示 django 的 404 页面,而是转到 [=14= 的 home/index ] 反应应用程序。我试图在 urls.py
中添加 handler404 = 'frontend.views.index'
,但它显示 500 内部错误而不是 404 或反应应用程序的索引。
任何帮助将不胜感激。提前致谢。
这在常规 django 项目中对我有用。
def handler404(request, exception):
return render(request, '404.html', status=404)
这里,404.html
是我的自定义模板文件。
在我的主要 urls.py:
handler404 = myapp.views.handler404
handler500 = myapp.views.handler500
from frontend.views import index
urlpatterns += [path("", index, name="index")]
在上面的代码中,您定义任何 url 都将转到主页,因为您使用了“”。您必须对索引页使用 url 正则表达式。
from django.urls import re_path, include
urlpatterns += [re_path(r'^$', index, name="index")]
这对你有用。