简介
我有一个任务,需要解决现有网站的问题,即除了浏览器会话之外,没有任何内容被缓存。当关闭会话并再次打开浏览器时,页面会重新加载许多图像、JS和CSS。由于每次有大约60个项目,因此存在很大的负载问题。
问题
查看Chrome控制台,审核显示以下资源缺少缓存过期时间...
而在“响应标头”中的网络项甚至不显示“cache-control”行。
尝试的解决方案
我已经在.htaccess
文件中设置了信息,并确保mod_expires
处于活动状态:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
我在HTML头部添加了
Cache-control
元标签,并且它也显示在页面的代码源中,因此被编译。<meta http-equiv="Cache-control" content="public" content="max-age=604800">
我想补充一点,生产页面的主机已将其设置为通常的默认值,因此很可能不是服务器问题。(而且我无论如何也无法访问那个服务器)
如果有人能给我一些提示,告诉我我错过了什么,或者还没有检查或简单地不理解,我会非常高兴。
添加了main.css标题
![在此输入图片描述](https://istack.dev59.com/VlBJt.webp)
<IfModule mod_expires.c>
的意思是:“如果该模块不可用,只需忽略我的代码,不要通知我”。4)PHP在资源交付中不扮演任何角色(除非它有,那么您应该解释如何)。 - Álvaro González