O cache do navegador Nginx WordPress expira em URLs sem extensão

1

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.

    
por JayMcTee 30.05.2015 / 15:52

0 respostas