Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Nginx提供React应用程序和Django博客?_Django_Reactjs_Nginx - Fatal编程技术网

如何从Nginx提供React应用程序和Django博客?

如何从Nginx提供React应用程序和Django博客?,django,reactjs,nginx,Django,Reactjs,Nginx,我正在使用nginx从我的域根/提供一个React应用程序,从/blog提供一个Django博客应用程序。我还使用nginx将所有http重定向到https 问题是一些奇怪的行为。。。如果我导航到带有清晰缓存的博客,它会显示博客。如果我导航到索引页面,它会显示react应用程序。到目前为止一切都很好。但是,如果我返回到/blog,它将继续显示react应用程序,而不是blog!我认为问题涉及缓存,但我不确定在哪里 我没有使用react路由器,所以我不确定如何在客户端重定向URL 这是我的ngin

我正在使用nginx从我的域根
/
提供一个React应用程序,从
/blog
提供一个Django博客应用程序。我还使用nginx将所有
http
重定向到
https

问题是一些奇怪的行为。。。如果我导航到带有清晰缓存的博客,它会显示博客。如果我导航到索引页面,它会显示react应用程序。到目前为止一切都很好。但是,如果我返回到
/blog
,它将继续显示react应用程序,而不是blog!我认为问题涉及缓存,但我不确定在哪里

我没有使用react路由器,所以我不确定如何在客户端重定向URL

这是我的nginx配置:

server {
    listen 80;
    server_name mydomain.com;
    return 301 https://$server_name$request_uri;
}


server {
    listen 443 ssl;
    server_name mydomain.com;
    root /production_build;

    location /static/ {
        root /var/www/mysite;
    }

    location /blog {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://upstream_django_server;
    }

    location /cms {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://upstream_django_server;
    }

    location / {
        try_files $uri /index.html;
    }
}

您应该在react中禁用服务工作者,因为它会干扰您的
/blog
url,并在下次返回自己的响应

因为你在这里混合了两个应用程序,所以你不想冒险拥有一些难以摆脱的东西


服务工作者有时会因为缓存响应而变得非常讨厌

您应该在react中禁用服务工作者,因为它会干扰您的
/blog
url,并在下次返回自己的响应

因为你在这里混合了两个应用程序,所以你不想冒险拥有一些难以摆脱的东西


服务人员有时会非常讨厌,因为缓存响应

当你第二次点击
/blog
时,nginx访问日志显示了什么?@Tarun第二次我进入/blog时,nginx日志只显示了对/api的成功(代码200)GET请求(nginx配置的一部分,类似于blog和cms),由我的react应用程序调用。因此,我猜这表明浏览器没有将第二个/blog请求传递给服务器。为什么?请尝试禁用react worked进程,看看在这种情况下会发生什么?没有react worker,因为它是与nginx一起提供的捆绑包。但是,如果我只是删除
位置/
部分(使用默认的nginx页面而不是react),导航就可以了。chrome网络选项卡在响应数据中为第二个博客请求显示了什么?当你第二次点击
/blog
时,nginx访问日志显示了什么?@Tarun我第二次访问/blog时,nginx日志只显示了对/api(我的nginx配置的一部分,类似于blog和cms)的成功(代码200)GET请求,该请求由我的react应用程序调用。因此,我猜这表明浏览器没有将第二个/blog请求传递给服务器。为什么?请尝试禁用react worked进程,看看在这种情况下会发生什么?没有react worker,因为它是与nginx一起提供的捆绑包。但是,如果我只是删除
location/
部分(使用默认的nginx页面而不是react),导航就可以了?