单页应用程序的真实URL?

时间:2016-06-09 07:29:39

标签: javascript django reactjs

我在我的一个项目中使用了反应路由器,所以反应是前端库,路由由反应路由器管理,后端视图在django和django休息中的api

所以我正在阅读react-router文档,我发现了这个: -

  

配置您的服务器   您的服务器必须准备好处理真实的URL。当应用程序首次加载/它可能会工作,但当用户导航,然后在/ accounts / 23点击刷新时,您的Web服务器将收到/ accounts / 23的请求。您需要它来处理该URL并在响应中包含您的JavaScript应用程序。**

我想知道如何使用django视图。

1 个答案:

答案 0 :(得分:3)

在开发服务器上,您只需为不以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特有的,但对所有单页应用来说都很常见。