Apache-2.2
Nginx 的記憶體清除和包含文件
在 Apache 中,您可以使用以下內容來記憶體 bust css 和 js 文件,並使用 Apache 的 Include mod 將它們作為單個文件提供服務:
<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; }
我正在尋找的是能夠使用
combined
帶有數字的關鍵字將所有 js 和 css 文件組合成單個文件以進行記憶體破壞:style.combined.100.css javascript.combined.100.js
- 解決方案 -
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 模組沒有太多經驗,但是您可以嘗試一下(或多或少直接重寫 Apache 配置)。
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; } }