Caching nginx重写规则冲突

Caching nginx重写规则冲突,caching,nginx,url-rewriting,rewrite,Caching,Nginx,Url Rewriting,Rewrite,我与nginx1.8.0的两个块有冲突 第一块是为某些文件类型设置静态缓存: location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|swf)$ { add_header "Access-Control-Allow-Origin" "*"; acc

我与nginx1.8.0的两个块有冲突

第一块是为某些文件类型设置静态缓存:

location ~* \.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|swf)$ {
  add_header "Access-Control-Allow-Origin" "*";
  access_log off;
  log_not_found off;
  expires max;
}
第二个块是由filetype定义的一系列重写:

location /files {
rewrite ^/files/master\.([0-9]+)?\.css$ /min/?g=css&456 break;
rewrite ^/files/master\.([0-9]+)?\.js$ /min/?g=js&456 break;
rewrite ^/files/second\.([0-9]+)?\.js$ /min/?g=jsa&456 break;
}
重写的结果是404。任何使用静态缓存规则中定义的文件类型的重写都会导致404错误。如果我将重写规则更改为不同的文件类型,或者注释掉静态缓存文件块,它就会工作


缓存静态文件中缺少了什么,阻止了在以后的配置设置中执行重写?

在咬牙切齿之后,我最终将重定向更改为try\u files参数。conf文件中的参数必须高于静态缓存文件

location ~ ^/files/master\.([0-9]+)?\.css$ {
   try_files $uri /min/?g=css&456;
}   
location ~ ^/files/master\.([0-9]+)?\.js$ {
   try_files $uri /min/?g=js&456;
} 
location ~ ^/files/second\.([0-9]+)?\.js$ {
   try_files $uri /min/?g=jsa&456;
}

这将允许我运行minify工具集。

经过多次磨牙后,我最终将重定向更改为try\u files参数。conf文件中的参数必须高于静态缓存文件

location ~ ^/files/master\.([0-9]+)?\.css$ {
   try_files $uri /min/?g=css&456;
}   
location ~ ^/files/master\.([0-9]+)?\.js$ {
   try_files $uri /min/?g=js&456;
} 
location ~ ^/files/second\.([0-9]+)?\.js$ {
   try_files $uri /min/?g=jsa&456;
}
这将允许我运行minify工具集