繁体   English   中英

Nginx子文件夹响应不一致

[英]Nginx subfolder response inconsistent

我有一个前端应用程序(在reactjs中)和一个静态博客,我想通过nginx从同一服务器上显示它们。 我的应用程序可在域/的根目录下访问,而我的博客当前可在子域blog.domain.com上访问。 但是我目前正在从同一域的子域切换到/ blog子文件夹,并且在显示来自该子文件夹的博客时遇到问题。 该问题仅出现在chrome上,并且非常不一致。 发生的是,当浏览/ blog时,我从js应用程序中获得了404,而不是静态站点(css样式不同,因此很容易发现谁做出了响应)。 如果刷新没有缓存的页面(ctrl + shift + R),我会收到静态博客的响应。 如果单击链接,则再次从js页面获得404,如果现在进行刷新,则从博客获得正确的页面。 页面上的所有f5都将从js页面重定向到404。

在firefox或私有导航中,一切似乎都很好,所以我起初是在浏览器中考虑一个常见的缓存问题,但事实是,删除缓存后,我仍然从错误的目录中获取404,这让我考虑了将要发送的一些参数并且在一种情况下或另一种情况下没有以相同的方式对待。

我注意到,当博客显示正确时,ctrl-shift-R将我从/ blog重定向到/ blog /,但是/ blog /上的f5仍然从js前端给出404。 这可能意味着末尾的301会做更多的事情。 但是/ blog /上的ctrl-shift-R不会触发显示预期网站的301(仅200)。

这是此站点的我的nginx配置文件:

server {
  listen 443 http2 default_server;
  listen [::]:443 http2 default_server;
  root /opt/react_folder/build;
  index index.html;
  server_name domain.com www.domain.com;

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

  location /blog {
      alias /opt/blog_subfolder;
      try_files $uri $uri/ /index.html =404;
  }

 ... backend block

 ... ssl block
}

server {
  listen 0.0.0.0:80;
  server_name domain.com www.domain.com;
  rewrite ^ https://$host$request_uri? permanent;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM