我有一个非常简单的通过nginx提供静态文件的情况,但我无法弄清楚。
我希望所有以/ static /开头的URL都从目录/ foo / bar / dir1提供静态文件,如果文件不在那里,请从/ foo / bar / dir2提供,如果没有,请返回404
所以例如在处理URL /static/some/file.png时我希望nginx首先尝试
/foo/bar/dir1/some/file.png
然后
/foo/bar/dir2/some/file.png
我知道我应该使用这样的东西
location /static/ {
try_files .... something .....
}
但是关于try_files的文档对我来说非常不清楚。我尝试了很多组合,但似乎没有任何效果。多个别名指令可以完成这项工作,但它不会起作用。我认为解决方案必须非常简单,但我无法做到正确。调试nginx如何解析所有这些位置和文件很难......
答案 0 :(得分:2)
您可以自定义根目录(确保在更新后更新try_files)。并确保location /
location ~* ^/static/(.+)$ {
root /;
try_files /foo/bar/dir1/some/$1 /foo/bar/dir2/some/$1 =404;
}
编辑:删除了对静态文件夹的需求。