caching破坏和包含Nginx的文件

在Apache中,您可以使用以下命令来cachingcss和js文件,并使用Apache的Include mod将它们作为单个文件进行caching:

<FilesMatch "\.combined\.js$"> Options +Includes AddOutputFilterByType INCLUDES application/javascript application/json SetOutputFilter INCLUDES </FilesMatch> <FilesMatch "\.combined\.css$"> Options +Includes AddOutputFilterByType INCLUDES text/css SetOutputFilter INCLUDES </FilesMatch> <IfModule mod_rewrite.c> RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L] </IfModule> 

我知道这是可能的nginx,但我似乎无法得到正确的语法。

– 编辑 – 添加一些代码

我到目前为止唯一的一件事是:

 location ~* (.+)\.(?:\d+)\.(js|css)$ { ssi on; try_files $uri $1.$2; } 

我正在寻找的是能够结合所有js和css文件到单个文件使用combined关键字与数字caching破坏:

 style.combined.100.css javascript.combined.100.js 

– 解决scheme –

 location / { ssi on; ssi_types *; location ~* \.combined\.js$ { ssi_types application/javascript application/json; } location ~* \.combined\.css$ { ssi_types text/css; } location ~* ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ { try_files $uri $1.$3 =404; } } 

不知道有多安全ssi_types *; 是…

我没有太多的ssi模块的经验,但你可以尝试一下(或多或less直接重写Apacheconfiguration)。

 location / { location ~* \.combined\.js$ { ssi on; ssi_types application/javascript application/json; } location ~* \.combined\.css$ { ssi on; ssi_types text/css; } location ~* ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ { try_files $uri $1.$3 =404; } }