处理 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")]

这对你有用。