django - 如何在 django 项目中使用 react-router 处理 404 错误
问题描述
我目前正在构建一个 django-react 网络应用程序,我想知道如何在 react-router 而不是 django 端处理我的 404 错误,这是我的代码,404 错误将在 django 服务器端路由...
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'^api/', include(urls)),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
routes = getattr(settings, 'REACT_ROUTES', [])
# urlpatterns += [url(r'^',
TemplateView.as_view(template_name='index.html'))]
urlpatterns += [url(r'^(%s)?$' % '|'.join(routes),TemplateView.as_view(template_name='index.html'))]
解决方案
这就是我会做的:
首先使用接受任何东西的正则表达式模式从 django 定义一个 url:
url(r'^.*$', TemplateView.as_view(), name="home") # This is the view which servers the react application
并将此路径添加到 urlpatterns 的底部。
其次,在 React App 中添加新的路由器:
<Route component={NotFoundComponent} /> // This component is for showing 404 page.
对于其余的路由器应该有确切的.
您可以查看本教程,了解如何在 react 中实现 404 页面。
推荐阅读
- c - 没有循环的函数是否可并行化?
- java - 永久编辑类路径中的 txt 文件
- python - 如何从 txt 文件中绘制字符串日期时间
- dll - 在 .NetCore 2.1 (Windows) 中加载本机库
- reactjs - 为什么在我的测试中我的子组件上的道具没有更新?
- c# - 如何模拟 Elasticsearch NEST 的 IGetMappingResponse 进行单元测试
- c++ - 包装非类型模板常量以避免混合相同类型的参数
- python - 使用 Cython 公开 C 结构时的内存效率
- javascript - Jquery排序并给出正确或不正确的消息
- python - 使用 Python 从 JSON API 定位特定值并插入 Postgresql