Php 缓存页面资产
为了减少对UI资产(JS/CSS)的HTTP请求,我编写了一个PHP脚本来组合这些文件,并以“assets/basic,login,jquery-UI-10.CSS”的形式提供这些文件,这很好,但我决定将其放远一点,让浏览器缓存这些资产组合器(我称之为资产组合器)通过在PHP脚本中添加expire头。当然,我在这里使用htacess RewriteRule功能来引用这个脚本assets.php?files=basic,login,jquery ui&type=css&version=10,使它看起来像一个css文件,以便浏览器缓存它(这样看起来很好:)。我还使用“version”参数强制浏览器更新文件,但这不会发生!!,我已添加这些头信息以缓存文件:Php 缓存页面资产,php,javascript,css,.htaccess,user-interface,Php,Javascript,Css,.htaccess,User Interface,为了减少对UI资产(JS/CSS)的HTTP请求,我编写了一个PHP脚本来组合这些文件,并以“assets/basic,login,jquery-UI-10.CSS”的形式提供这些文件,这很好,但我决定将其放远一点,让浏览器缓存这些资产组合器(我称之为资产组合器)通过在PHP脚本中添加expire头。当然,我在这里使用htacess RewriteRule功能来引用这个脚本assets.php?files=basic,login,jquery ui&type=css&version=10,使它看
header("HTTP/1.1 304 Not Modified");
header("Expires: Sat, 1 Jun 2015 12:00:00 GMT");
header("Cache-Control: must-revalidate");
但是,当我尝试更改上面URL字符串中的version参数时,它不会下载新的文件内容,尽管浏览器的文件名已更改>
我在这里做错了什么,如何强制浏览器重新下载具有不同名称(但仍发送上述标题)的新文件>
提前谢谢你不能。“未修改”的全部意义在于,它告诉浏览器该文档与上一版本相同,并且不应下载该文档
好的,如果自请求修改后,您应该只发送它作为对请求的响应。正如昆廷所说,您必须只发送304响应作为对If-Modified-Since或If-None匹配请求的响应。通过发送304响应,您告诉浏览器使用缓存副本,即使它没有缓存副本 实际上,使用304响应实际上可能无法达到提高性能的目的,通常最好忽略条件请求,使用内容和新缓存指令进行200响应 如果希望缓存内容,则发送一个max age和一个Expires头(Expires头仅适用于HTTP/1.0客户端-所有现代浏览器都实现了HTTP1/1-即使您明确告诉它们使用HTTP/1.0) e、 g
header("Expires: Sat, 1 Jun 2015 12:00:00 GMT");
header("Cache-Control: max-age=94608000,must-revalidate");