当我将React添加到我的Django项目中时。似乎一切正常。 但是,如果我在浏览器中刷新页面,则会收到错误消息:
我了解Django正在尝试寻找合适的视图,但是如何使它成为React?
答案 0 :(得分:0)
这通常是Apache / NGINX(前端Web服务器)配置。
您应该将其配置为为React应用程序使用的每条路线提供相同的Django视图,并在其中包含React源。
nginx示例:
location ~ ^/your-django-view/?(.*) {
# rewrite ^ index.html;
proxy_pass http://127.0.0.1:8000;
break;
}
127.0.0.1:8000应该是您的django host:port的更改。
答案 1 :(得分:0)
当前,您的服务器正在捕获用于React的路由并尝试处理它们。您需要配置路由,以便服务器仅处理实际的服务器路由(通常以"/api/"
为前缀),其他所有路由由React处理。
在未看到您的urls.py
文件的情况下,我假设您已经将基础/裸路线("/"
)转到了React应用,该应用对于初始请求(至主页)的运行情况很好,但是在使用链接或刷新页面时开始崩溃。
您的路由基本上应该以通常使用404页的方式使用React应用程序-当在服务器上找不到该请求的匹配路由时。重要的是定义到React应用的路由之上的所有其他路由,以便服务器知道如何处理的所有事情都由服务器处理,而其余的则传递给React客户端。
因此您的网址应如下所示:
from django.conf.urls import url, include
from django.views.generic import TemplateView
urlpatterns = [
url(r"^api/v1/", include("api_v1.urls", namespace="api_v1")),
url(r"^.*", TemplateView.as_view(template_name="index.html")),
]
index.html
是您的React应用程序的那个位置。