使用 React Router 在 Django 中排除某些路由?

Lew*_*wis 7 python django reactjs react-router

我目前正在构建一个带有 Django REST 后端的 React。我遇到了一个我无法解决的与路由有关的小问题。

这是我的urls.py文件。

urlpatterns = [
    url(r'^api/', include(router.urls)),
    url(r'^admin/', admin.site.urls),
    url(r'^djangojs/', include('djangojs.urls')),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    url(r'^$', TemplateView.as_view(template_name='exampleapp/itworks.html')),
    url(r'^(?:.*)/?$', TemplateView.as_view(template_name='exampleapp/itworks.html')),
]
Run Code Online (Sandbox Code Playgroud)

使用这个,它让反应路由器在前端做它的事情。例如,如果我想去,127.0.0.1:8000/mentors它将带我到我为 React Router 设置的页面。

但是,因此在前端进行 API 调用也会返回反应页面而不是 API 端点。因此,每当我删除上面代码中的最后一行时:url(r'^(?:.*)/?$', TemplateView.as_view(template_name='exampleapp/itworks.html')),,它就会成功获取以 JSON 格式返回的 API。现在的问题是,当我尝试转到链接时,它将返回 Django 404 页面,而不是我在 React Router 中设置的 React 页面。

无论如何,我可以两全其美吗?