对不起,我是新来的,如果问题含糊不清,请给我指点方向。我在Disk-1中有一个图像Disk-1,在Disk-2中有一个图像abc.jpg,当我调用url:../image/xyz.jpg时,xyz.jpg (Disk-1)通过在nginx文件中使用alias来显示。问题是:有什么办法叫../image/abc.jpg,abc.jpg (Disk-2)会出现吗?
location /image/ {
expires max;
add_header Pragma public;
add_header Cache-Control "public";
alias /image_data/;
}编辑:我使用了try_files,但是它没有起作用
location @image2 {
alias /image_data_2/;
try_files $uri $uri/ =404
}
location /image/ {
expires max;
add_header Pragma public;
add_header Cache-Control "public";
alias /image_data/;
try_files $uri $uri/ @image2;
}发布于 2019-07-02 07:41:56
因此,您需要检查两个文件夹中的图像,以匹配以/image/开头的URI。
您可以使用正则表达式location块来捕获前缀后面的URI部分,从而避免使用alias指令。正则表达式位置按顺序计算,因此块在server块中的位置非常重要。详情请参见本文件。
在location块的保护范围内,root被设置为一个公共父目录(在本例中是/),并使用try_files术语构造文件路径。
例如:
location ~ ^/image/(.*)$ {
expires max;
add_header Pragma public;
add_header Cache-Control "public";
root /;
try_files /image_date/$1 /image_data_2/$1 =404;
}详情请参见本文件。
https://stackoverflow.com/questions/56835035
复制相似问题