下面的事情有点困难。
为 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;
欢迎提供任何正确的建议,谢谢。