WordPress Nginx 浏览器缓存在无扩展名的 URL 上过期

WordPress Nginx 浏览器缓存在无扩展名的 URL 上过期

下面的事情有点困难。

为 JS 和 CSS 以及其他静态文件添加过期时间很容易:

# Directives to send expires headers.
location ~* \.(?:css|js)$ {
       expires 28d;
       access_log off;
       add_header Cache-Control "public";
}

但对于我喜欢的 URL,我做得不对。重写的 URL 如下所示:

www.domain.tld/post-name

因此没有像 .html 或 .php 这样的扩展名,并且主页只是一个 / 请注意我的主页是静态的,没有最新的新闻/博客帖子等,所以我还希望将其缓存在浏览器中。

将过期时间添加到此位置块并不会将浏览器缓存添加到主页:

location / {
        try_files $uri $uri/ /index.php?$args;
        expires 1d;
}

在 php 文件位置(重写之前)添加过期时间也不起作用,Nginx 似乎想要精确的请求 URI。

我已经看到了这个建议,但担心使用太多的 if 语句:

location / {
    if (-f $request_filename) { 
      expires 30d; 
      break; 
    }
} 

确保像这样的 5 页简单网站的所有页面都能被浏览器缓存的最佳方法是什么?理想情况下,无需对 URL 进行硬编码。

www.domain.tld/ www.domain.tld/我们的产品 www.domain.tld/我们的服务 www.domain.tld/关于我们 www.domain.tld/联系方式

是否可能像我们对 gzip 所做的那样,通过 mime 类型而不是扩展名来添加过期时间?

mime_type text/html
    expires 1d;

欢迎提供任何正确的建议,谢谢。

相关内容