Я работаю над кешированием статических файлов в среде SugarCRM, что происходит не так, как мне хотелось бы.
Я сузил круг вопросов до одного конкретного случая и хотел бы знать, почему это так.
В браузере 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
Заголовки ответа выглядят так:
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. Как отмечено в ТАК ссылка:
Это известная ошибка в Apache. Видеть Ошибка Apache № 45023, и резюме Apache 304 etags и mod_deflate.
И на данный момент обходной путь, как указано в приведенной выше ссылке SO,
поместите их в конфигурацию .htaccess или apache:
RequestHeader edit "If-None-Match" "^\"(.*)-gzip\"$" "\"$1\""
Header edit "ETag" "^\"(.*[^g][^z][^i][^p])\"$" "\"$1-gzip\""