标签:nginx static-files nginx-location
我一直望而却步,发现没有这样的实现,并且想知道我尝试的事情是否可能.我有3条相对路径可提供静态内容:
Path1: /usr/local/www/style1/static/...
Path2: /usr/local/www/style2/static/...
Path3: /usr/local/www/style3/static/...
这3个不同的根本身是静态的,但是/ static到下的内容只是半静态的(可能有所不同,具体取决于要提供的确切文件,并且可能存在于一个路径中,而不是另一个路径中).例如
/static/css/custom.css
/static/css/form/button.css
/static/css/form/images/buttondisabled.png
/static/images/ui/buttons/add_item.png
/static/images/ui/menu/help.png
以下是我想做的.基本上是这样,如果请求“ / static”内容,我想检查与path1相关的相对路径,如果在那里找不到,则检查与path2相关的相对路径,如果没有找到,则检查与path3相关的相对路径.这似乎很简单,但是我还没有找到任何示例概述该操作的方式.我可以将3个不同的根设置为变量吗:
path1root /usr/local/www/style1;
path2root /usr/local/www/style2;
path3root /usr/local/www/style3;
location /static
{
try_files path1root/$uri path2root/$uri path3root/$uri (=404);
}
或可以按照以下方式进行操作,因为仅/ static内容需要它:
location /static
{
path1root /usr/local/www/style1;
path2root /usr/local/www/style2;
path3root /usr/local/www/style3;
try_files path1root/$uri path2root/$uri path3root/$uri (=404);
}
还是可以完全尝试做我想做的事情?如果我不能使用3个根来做到这一点,那么可以仅用2个根来完成,而无需将其中一个定义为整体拱形基根.如果有可能做到这一点,并且避免使用正则表达式,那会更好-但是,如果需要这样做,则需要这样做.
解决方法:
您可以使用公共根目录,并尝试使用try_files语句中的三个目录:
location /static {
root /usr/local/www;
try_files /style1$uri /style2$uri /style3$uri =404;
}
标签:nginx,static-files,nginx-location 来源: https://codeday.me/bug/20191118/2025644.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。