В Apache вы можете использовать следующее для кеширования файлов css и js и их сервера как одного файла с модом Apache Include:
<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
ключевое слово с номером для очистки кеша:
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;
}
}