0

我有一个这样定义的位置。

location ~ \.(jpg|jpeg|png|gif|swf|flv|mp4|mov|avi|wmv|m4v|mkv|ico|css|js|txt|html|htm)$ {
    root /path/to/static/files/;
}

如果我要求/events.js它在/path/to/static/files/其中工作正常。

但是,如果我请求/func.js其中的内容,/other/path/to/static/files/将找不到它。

所以我需要的是两个可以找到静态文件的位置。这两个请求之间没有任何其他区别,它们在同一个应用程序中是相同的,唯一的区别是文件的物理位置。另外我不知道文件的名称它们是完全随机的。

解决方案

location ~ \.(jpg|jpeg|png|gif|swf|flv|mp4|mov|avi|wmv|m4v|mkv|ico|css|js|txt|html|htm)$ {
    root /;
    try_files /path/to/static/files/$uri /other/path/to/static/files/$uri /;
}
4

1 回答 1

0

尝试以下操作:

location ~ \.(jpg|jpeg|png|gif|swf|flv|mp4|mov|avi|wmv|m4v|mkv|ico|css|js|txt|html|htm)$ {
  root /;
  try_files /path/to/static/files/$uri /other/path/to/static/files/$uri;
}

请参阅http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files了解其工作原理

于 2012-11-17T21:07:27.263 回答