Nginx检查多个根

时间:2019-03-07 11:23:36

标签: nginx

我在nginx配置中有一个位置:

   location ~ \.(js|jpg|png|css|gif|ico|svg|jpeg)$ {
            root /some/basic/root;
       }

它适用于一个目录/some/basic/root中的静态文件。但是我在其他目录中还有其他一些静态文件,例如cssjs

root /completely/other/root;

root /completely/other/root/dir1;

root /completely/other/root/dir2;

如何使nginx也检查其他目录?

1 个答案:

答案 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