使用add_header的nginx try_files

时间:2018-05-10 08:17:34

标签: nginx single-page-application nginx-location

有人可以解释一下吗?

我有一个包含此代码段的nginx服务器块:

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

基本上,我使用它来服务Angular SPA。它效果很好。

现在我想在响应中添加Access-Control-Allow-Origin标头。所以我改变了这样的块:

location / {
  if ($request_method = 'OPTIONS') {
          add_header 'Access-Control-Allow-Origin' '*';
          add_header 'Access-Control-Max-Age' 1728000;
          return 204;
  }
  if ($request_method = 'GET') {
          add_header 'Access-Control-Allow-Origin' '*';
  }
  try_files $uri $uri/ /index.html;
}

现在每当我访问http://<application>.com时,我都会获得该页面,并且我可以导航到http://<application>.com/some-page等子路由。但是如果我直接尝试访问http://<application>.com/some-page,我就会得到一个nginx 404.以前的情况并非如此。如果我对if的{​​{1}}语句发表评论,那么事情就会恢复正常。

为什么呢? GET语句在这里有什么区别?

0 个答案:

没有答案