No Apache, você pode usar o seguinte para armazenar em cache os arquivos css e js e organizá-los como um único arquivo com o mod de inclusão do Apache:
<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>
Eu sei que isso é possível com o nginx, mas não consigo acertar a sintaxe.
- EDIT -
Adicionando algum código
A única peça que tenho até agora é:
location ~* (.+)\.(?:\d+)\.(js|css)$ {
ssi on;
try_files $uri $1.$2;
}
O que estou procurando é poder combinar todos os arquivos js e css em arquivos únicos usando a palavra-chave combined
com um número para impedimento de cache:
style.combined.100.css
javascript.combined.100.js
- SOLUÇÃO -
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;
}
}
Não tenho certeza de quão seguro é ter ssi_types *;
...