Apache 缓存文件的HTTP内容类型标头

Apache 缓存文件的HTTP内容类型标头,apache,http-headers,Apache,Http Headers,使用带mod_rewrite的Apache,当我加载.css或.js文件并查看HTTP头时,内容类型只有在第一次加载时设置正确-后续刷新完全缺少内容类型,这给我带来了一些问题 我可以通过在每个文件名的末尾附加一个随机查询字符串值来解决这个问题,例如http://www.site.com/script.js?12345 但是,我不想这样做,因为缓存很好,我只想让内容类型出现。我尝试使用重写规则强制输入,但仍然没有解决问题。有什么想法吗 谢谢,Brian答案取决于您在此未提供的信息,特别是您在哪里看

使用带mod_rewrite的Apache,当我加载.css或.js文件并查看HTTP头时,内容类型只有在第一次加载时设置正确-后续刷新完全缺少内容类型,这给我带来了一些问题

我可以通过在每个文件名的末尾附加一个随机查询字符串值来解决这个问题,例如
http://www.site.com/script.js?12345

但是,我不想这样做,因为缓存很好,我只想让内容类型出现。我尝试使用重写规则强制输入,但仍然没有解决问题。有什么想法吗


谢谢,Brian

答案取决于您在此未提供的信息,特别是您在哪里看到这些标题

除非是通过嗅探浏览器和客户端之间的网络流量,否则您无法确定您是在查看对服务器的真实请求还是缓存中满足的请求。实际上,正如您所描述的,更改URL是一种非常简单的方法,可以强制从服务器重新加载,而不是从缓存加载

我认为它不像你看起来那么破碎。启动Wireshark并亲自查看,或者干脆禁用这些内容类型的缓存


C.

可能会丢失,因为后续请求仅验证您的副本是否过期。你能粘贴每个案例的回复标题吗?我已经用标题输出更新了原始帖子。谢谢,我也是这么想的。看看第二个响应“HTTP/1.1 304 Not Modified”,它没有返回js文件,只是让每个人都知道客户端上存储的副本是新的。你在这方面面临什么问题?我对gzip有些困惑。当使用缓存文件时,我的.js和.css文件不会显示为压缩文件。注意-也许我应该将其放在serverfault上-我已经在那里打开了一篇文章,以便在必要时可以关闭。首先确认这篇文章没有被破坏。我刚刚使用了gzip,并且未压缩的文件已经被缓存,所以没有任何东西显示为压缩文件。通过URL强制重新加载将显示正确的结果,但直到我进行了更彻底的缓存清理,问题才完全解决。谢谢你的帮助。