背景信息:我正在使用名为Social Engine的软件包。这是非常错误的。
无论如何,我要求(甚至支付)社交引擎人员进行升级,当他们最终这样做时,我登录了网站,发现这些风格都缺失了。我打开了一张支持票,他们告诉我的是这是一个416错误并联系我的ISP。
通过测试位于软件中可写文件夹中的CSS文件的直接链接,可以发现此错误。
我开始做研究只发现这是一个非常罕见的错误,我在Ubuntu 10.10 Linode服务器(运行安装了APC扩展的最新Apache和PHP5)上看不到任何关于转换范围请求的建议。也许这是一个软件问题?有些APC的缓存工作正常吗?我将此软件中的缓存重置为60秒,并确保它使用的是APC。仍然没有骰子。
他们的软件可能正在做什么,我需要考虑修补?
答案 0 :(得分:10)
问题可能是由于您的浏览器缓存了原始CSS文件并尝试请求新文件的字节范围。请参阅示例this bug with Chrome。
就禁用范围请求而言,如果清除浏览器缓存可能没有必要,但如果需要,可以尝试以下Apache配置:
Header unset Accept-Ranges
这将告诉客户端他们无法使用Range
请求标头来请求文件的字节范围。
答案 1 :(得分:6)
我在.htaccess文件的顶部
Header set Accept-Ranges none
RequestHeader unset Range
希望这会有所帮助。
答案 2 :(得分:3)
拦截从您的ISP返回的标头,并验证您是否获得了416状态代码。如果是这样,请截取您发送给ISP的标头并删除范围标题;这应该强制服务器向您发送整个文件。