我在nginx
配置中有一个位置:
location ~ \.(js|jpg|png|css|gif|ico|svg|jpeg)$ {
root /some/basic/root;
}
它适用于一个目录/some/basic/root
中的静态文件。但是我在其他目录中还有其他一些静态文件,例如css
和js
:
root /completely/other/root
;
root /completely/other/root/dir1
;
root /completely/other/root/dir2
;
如何使nginx
也检查其他目录?
答案 0 :(得分:3)
如果存在一个公共的父目录,则可以使用try_files
依次测试每个子目录:
location ~ \.(js|css)$ {
root /common/parent;
try_files /basic/root$uri /other/root$uri /other/root/dir1$uri /other/root/dir2$uri =404;
}
如果公用的父目录不可行,则可以再次使用location
来级联try_files
块:
location ~ \.(js|css)$ {
root /some/basic/root;
try_files $uri @other;
}
location @other {
root /completely/other/root;
try_files $uri /dir1$uri /dir2$uri =404;
}
有关详细信息,请参见this document。