Lutando um pouco com o seguinte.
A adição de expires para JS e CSS, além de outros arquivos estáticos, é fácil:
# Directives to send expires headers.
location ~* \.(?:css|js)$ {
expires 28d;
access_log off;
add_header Cache-Control "public";
}
Mas para os meus URLs extravagantes, não estou a acertar. URLs reconfigurados são assim:
www.domain.tld/post-name
Portanto, nenhuma extensão como .html ou .php, e a página inicial é apenas uma / Nota que a minha página inicial é estática, não há notícias / posts de blog, etc., por isso também desejo que esta seja colocada em cache no navegador.
Adicionar as expirações a este bloco de localização não adiciona cache do navegador à página inicial:
location / {
try_files $uri $uri/ /index.php?$args;
expires 1d;
}
A adição expira no local do arquivo php (antes da reconfiguração) também não funciona, o Nginx parece querer o URI solicitado.
Eu já vi isso sugerido, mas tenho medo de usar muitas declarações if:
location / {
if (-f $request_filename) {
expires 30d;
break;
}
}
Qual é a melhor abordagem para garantir que um site simples de 5 páginas como este coloque todas as suas páginas em cache no navegador? Idealmente, sem codificar os URLs.
www.domain.tld / www.domain.tld / our-products www.domain.tld / our-services www.domain.tld / about-us www.domain.tld / contact
É possível adicionar expires por tipo mime em vez de extensão como fazemos com gzip?
mime_type text/html
expires 1d;
Qualquer dica na direção certa seria bem-vinda, obrigado.