我在我的一个项目中使用了反应路由器,所以 react 是前端库,路由由 react router 管理,后端视图在 django 中,API 在 django rest 中
所以我正在浏览反应路由器文档,我遇到了这个:-
配置服务器 您的服务器必须准备好处理实际 URL。当应用程序首次在/加载时,它可能会工作,但是当用户四处导航然后在/accounts/23 点击刷新时,您的 Web 服务器将收到对/accounts/23 的请求。您将需要它来处理该 URL,并在响应中包含您的 JavaScript 应用程序。
我想知道这将如何与 django 视图一起工作。
在开发服务器上,您只需为不以 api/
或static/
开头的所有内容设置一条路由,以返回基本app.html
文件。例
class AppHTMLView(View):
def get(self, request):
fn = os.path.join(settings.BASE_DIR, "app", "app.html")
with open(fn, 'r') as fh:
return HttpResponse(fh.read())
在生产服务器上,您可以相应地配置 Nginx。像这样的东西
...
location / {
root /var/www/example.com/static_files/;
try_files '' /app.html =404;
}
但这绝不是 React 特有的,而是所有单页应用程序通用的。