【问题标题】:Nginx: serving static files from multiple locations (probably very easy to solve)Nginx:从多个位置提供静态文件(可能很容易解决)
【发布时间】:2016-01-14 23:10:40
【问题描述】:

我有一个通过 nginx 提供静态文件的非常简单的案例,但我无法弄清楚。

我希望所有以 /static/ 开头的 URL 都从目录 /foo/bar/dir1 提供静态文件,如果文件不存在,则从 /foo/bar/dir2 提供,如果不存在,则返回 404。

例如,在处理 URL /static/some/file.png 时,我希望 nginx 先尝试

/foo/bar/dir1/some/file.png 

然后

/foo/bar/dir2/some/file.png

我知道我可能应该使用这样的东西

location /static/ {
  try_files .... something .....
}

但是关于 try_files 的文档对我来说非常不清楚。我尝试了很多组合,但似乎没有任何效果。多个别名指令可以完成这项工作,但它不起作用。我认为解决方案必须非常简单,但我无法正确解决。调试 nginx 如何解析所有这些位置和文件有点困难......

【问题讨论】:

    标签: nginx


    【解决方案1】:

    您可以自定义根目录(确保在之后更新 try_files)。还要确保location /中没有根指令

    location ~* ^/static/(.+)$ {
            root /;
            try_files /foo/bar/dir1/some/$1 /foo/bar/dir2/some/$1 =404;
    }
    

    编辑:删除静态文件夹的需要。

    【讨论】:

      猜你喜欢
      • 2014-01-26
      • 2012-08-29
      • 2014-11-19
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2019-07-01
      • 2011-03-24
      • 2018-10-23
      相关资源
      最近更新 更多