有人可以解释一下吗?
我有一个包含此代码段的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
语句在这里有什么区别?