![用于提供静态资源的通配符路径](https://linux22.com/image/787925/%E7%94%A8%E4%BA%8E%E6%8F%90%E4%BE%9B%E9%9D%99%E6%80%81%E8%B5%84%E6%BA%90%E7%9A%84%E9%80%9A%E9%85%8D%E7%AC%A6%E8%B7%AF%E5%BE%84.png)
我想要使用在路径中间有令牌的端点来访问目录中的图像等资源。
http://example.com/contextpath/<token>/logos/myLogo.png
Example: http://example.com/contextpath/abc1234/logos/myLogo.png
我正在尝试在 nginx.conf 中对其进行配置,并将此配置用于将资源指向一个目录:
location ~ ^/contextpath/(logos/.*) {
root "C:/temp/logos";
}
但它不起作用。
答案1
C:/temp/logos/myLogo.png
为了响应 URL http://example.com/contextpath/abc1234/logos/myLogo.png
(文本标记abc1234
未知)提供文件,您应该将正则表达式location
与一起使用try_files
。
例如:
location ~ ^/contextpath/[^/]+/logos(/.*)$ {
root "C:/temp/logos";
try_files $1 =404;
}
该序列匹配两个s/[^/]+/
之间的任何标记。/
文本“logos”应该出现在捕获中或声明中root
- 而不是像您的示例中那样同时出现。