我正在努力在SugarCRM环境中caching静态文件,这不是我想要的。
我已经把它缩小到一个具体的案例,我想知道为什么这样。
在Chrome浏览器上,我试图直接访问这个url:
http://hostname/cache/include/javascript/sugar_grp1_jquery.js
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate, sdch Accept-Language:en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4 Cache-Control:max-age=0 Connection:keep-alive Cookie:PHPSESSID=dlbb4vtum36n37teu9eqpd1pf7; sugar_user_theme=SuiteR Host:hostname If-Modified-Since:Thu, 09 Jul 2015 08:16:57 GMT If-None-Match:"6f344-51a6ce0fcb040-gzip" Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate, sdch Accept-Language:en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4 Cache-Control:max-age=0 Connection:keep-alive Cookie:PHPSESSID=dlbb4vtum36n37teu9eqpd1pf7; sugar_user_theme=SuiteR Host:hostname If-Modified-Since:Thu, 09 Jul 2015 08:16:57 GMT If-None-Match:"6f344-51a6ce0fcb040-gzip" Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
响应标头如下所示: HTTP/1.1 200 OK Date: Fri, 23 Oct 2015 15:20:58 GMT Server: Apache/2.4.16 (Ubuntu) Last-Modified: Thu, 09 Jul 2015 08:16:57 GMT ETag: "6f344-51a6ce0fcb040-gzip" Accept-Ranges: bytes Vary: Accept-Encoding Content-Encoding: gzip Keep-Alive: timeout=5, max=94 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: application/javascript
我期待HTTP状态码304(未修改)。 为什么这不会发生?
看起来这是一个Apache的错误。 正如SO链接所述 :
这是Apache中的一个已知的错误。 请参阅Apache错误#45023 ,以及Apache 304 etags和mod_deflate的摘要 。
而现在的解决方法正如上面的SO链接所述,
将这些放在.htaccess或apacheconfiguration中:
RequestHeader edit "If-None-Match" "^\"(.*)-gzip\"$" "\"$1\"" Header edit "ETag" "^\"(.*[^g][^z][^i][^p])\"$" "\"$1-gzip\""