Django和React.js生产

时间:2019-03-09 05:13:33

标签: django reactjs

当我将React添加到我的Django项目中时。似乎一切正常。 但是,如果我在浏览器中刷新页面,则会收到错误消息:

enter image description here

我了解Django正在尝试寻找合适的视图,但是如何使它成为React?

2 个答案:

答案 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应用程序的那个位置。

相关问题