用于提供静态资源的通配符路径

用于提供静态资源的通配符路径

我想要使​​用在路径中间有令牌的端点来访问目录中的图像等资源。

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- 而不是像您的示例中那样同时出现。

指令try_files

相关内容