Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess Google页面速度利用未标记为已解决的浏览器缓存_.htaccess_Caching_Apache2_Browser Cache_Google Pagespeed - Fatal编程技术网

.htaccess Google页面速度利用未标记为已解决的浏览器缓存

.htaccess Google页面速度利用未标记为已解决的浏览器缓存,.htaccess,caching,apache2,browser-cache,google-pagespeed,.htaccess,Caching,Apache2,Browser Cache,Google Pagespeed,在pagespeed测试中,我需要解决的警告很少,例如: 利用浏览器缓存 在HTTP头中为静态资源设置过期日期或最长使用期限会指示浏览器从本地磁盘而不是通过网络加载以前下载的资源 然后指向本地的.js和.css文件 但我的htaccess中有以下内容: <FilesMatch "\.(js|css|ttf)$"> Header set Cache-Control "max-age=604800, public" </FilesMatch> <FilesMat

在pagespeed测试中,我需要解决的警告很少,例如:

利用浏览器缓存
在HTTP头中为静态资源设置过期日期或最长使用期限会指示浏览器从本地磁盘而不是通过网络加载以前下载的资源

然后指向本地的.js和.css文件

但我的htaccess中有以下内容:

<FilesMatch "\.(js|css|ttf)$">
    Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(html|htm|php)$">
    Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>
<FilesMatch "\.(css|js|gif|jpeg|png|ico)$">
ExpiresActive On
ExpiresDefault "access plus 1 year"
</FilesMatch>

标题集缓存控制“最大年龄=604800,公共”
标题集缓存控制“最大年龄=604800,公共”
标头集缓存控制“最大年龄=60,专用,代理重新验证”
过期于
ExpiresDefault“访问权限加1年”

知道我做错了什么吗?

好吧,这是瞎猜,但我遇到了Apache不尊重我的
.htaccess
头的情况,我不得不用
总是
关键字“强制”它们,如下所示:

<FilesMatch "\.(js|css|ttf)$">
    Header always set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header always set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(html|htm|php)$">
    Header always set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>
<FilesMatch "\.(css|js|gif|jpeg|png|ico)$">
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
</FilesMatch>

标头始终设置缓存控制“最大年龄=604800,公共”
标头始终设置缓存控制“最大年龄=604800,公共”
标头始终设置缓存控制“最大年龄=60,专用,代理重新验证”
过期于
ExpiresDefault“访问权限加1年”
如果操作是现有标头的函数,则可能需要指定“始终”的条件,具体取决于原始标头设置在哪个内部表中。与“始终”对应的表用于本地生成的错误响应以及成功响应。还请注意,在某些情况下,使用这两种条件重复此指令是有意义的,因为相对于现有标头,始终不是onsuccess的超集:

  • 您正在向本地生成的非成功(non-2xx)响应(如重定向)添加一个头,在这种情况下,最终响应中只使用与“始终”对应的表
  • 您正在修改或删除由CGI脚本生成的头,在这种情况下,CGI脚本位于与“始终”对应的表中,而不在默认表中
  • 您正在修改或删除由服务器的某个部分生成的标头,但在默认的onsuccess条件下找不到该标头

您正在使用Insights测试的URL是什么?使用您的
.htaccess
,PageSpeed Insights返回
利用浏览器缓存,您已启用浏览器缓存
。当您在浏览器中打开页面时,是否在浏览器控制台中看到标题?您添加了1年的
ExpiresDefault
,以及7天的
max age
。你有没有尝试过同样的价值观。这可能是问题所在…是的,我做了,没有工作。。