Answers:
我认为这将为您做到:
location / {
try_files /base.html =404;
}
try_files '' /base.html;
(空字符串作为的第一个参数try_files
)可避免查找名为的文件$uri
。
try_files '' /base.html;
给了我一个重定向问题和一个内部服务器错误,但是修改了它以try_files '' /base.html =404;
解决该问题,如果它可以帮助任何人。
使用try_files
对我不起作用-它在我的日志中引起了重写或内部重定向周期错误。
Nginx文档还有一些其他细节:
http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
所以我最终使用了以下内容:
root /var/www/mysite;
location / {
try_files $uri /base.html;
}
location = /base.html {
expires 30s;
}
try_files '' /base.html =404;
(请参见上文)
location = /base.html { expires 30s }
部分。
这对我有用:
location / {
alias /path/to/my/indexfile/;
try_files $uri /index.html;
}
这使我能够为JavaScript单页应用程序创建一个包含所有内容的URL。如果所有静态文件(如css,字体和javascript构建的静态文件)npm run build
都位于相同的目录中,则会找到它们index.html
。
如果静态文件由于某种原因位于另一个目录中,则您还需要以下内容:
# Static pages generated by "npm run build"
location ~ ^/css/|^/fonts/|^/semantic/|^/static/ {
alias /path/to/my/staticfiles/;
}