首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx从多个位置读取文件。

Nginx从多个位置读取文件。
EN

Stack Overflow用户
提问于 2019-07-01 11:39:19
回答 1查看 102关注 0票数 1

对不起,我是新来的,如果问题含糊不清,请给我指点方向。我在Disk-1中有一个图像Disk-1,在Disk-2中有一个图像abc.jpg,当我调用url:../image/xyz.jpg时,xyz.jpg (Disk-1)通过在nginx文件中使用alias来显示。问题是:有什么办法叫../image/abc.jpgabc.jpg (Disk-2)会出现吗?

代码语言:javascript
复制
location /image/ {
            expires max;
            add_header Pragma public;
            add_header Cache-Control "public";
            alias  /image_data/;
        }

编辑:我使用了try_files,但是它没有起作用

代码语言:javascript
复制
        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;
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-02 07:41:56

因此,您需要检查两个文件夹中的图像,以匹配以/image/开头的URI。

您可以使用正则表达式location块来捕获前缀后面的URI部分,从而避免使用alias指令。正则表达式位置按顺序计算,因此块在server块中的位置非常重要。详情请参见本文件

location块的保护范围内,root被设置为一个公共父目录(在本例中是/),并使用try_files术语构造文件路径。

例如:

代码语言:javascript
复制
location ~ ^/image/(.*)$ {
    expires max;
    add_header Pragma public;
    add_header Cache-Control "public";

    root /;
    try_files /image_date/$1 /image_data_2/$1 =404;
}

详情请参见本文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56835035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档