내 사이트의 모든 JS를 일주일 동안 캐시하도록 설정했습니다. 그러나 더 높은 빈도로 새로 고쳐야하는 특정 파일이 있습니다. 따라서 나는 나의 htaccess로 파일에 예외를 초래하는 FilesMatch을 사용하고 있습니다 :htaccess의 변경 사항 브라우저에 반영되지 않는 헤더 만료
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 year"
# Data interchange
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
# Favicon (cannot be renamed!)
ExpiresByType image/x-icon "access plus 1 week"
# HTML components (HTCs)
ExpiresByType text/x-component "access plus 1 month"
# HTML
ExpiresByType text/html "access plus 0 seconds"
# JavaScript
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
# Manifest files
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Media
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# Web feeds
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
# Web fonts
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
</IfModule>
<FilesMatch "^(ga\.js)$">
ExpiresActive on
ExpiresDefault "access plus 2 days"
</FilesMatch>
예외 파일이 /sandboxassets/js/ga.js
에 내가 함께 일하고 htaccess로 이 문서 루트 (/
)에 있습니다. 그러나, 브라우저는이 예외를 존중하는 것 문제의 파일에 대해 다음과 같은 헤더를 제공하지 않습니다
Accept-Ranges:bytes
Access-Control-Allow-Origin:*
Age:0
Cache-Control:max-age=604800
Content-Encoding:gzip
Content-Length:11967
Content-Type:application/javascript
Date:Thu, 02 Mar 2017 15:03:55 GMT
Expires:Thu, 09 Mar 2017 15:03:55 GMT
Last-Modified:Thu, 02 Mar 2017 15:00:01 GMT
Server:Apache Phusion_Passenger/4.0.10 mod_bwlimited/1.4 mod_fcgid/2.3.9
Vary:Accept-Encoding,User-Agent
Via:1.1 varnish-v4
X-Varnish:18808880
604,800초 내 의 .htaccess에 정의 된 모든 JS 자산의 기본 인 1 주일하지만 172800 초 (2 일)가되어야합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 또한 최신 헤더로 새로 고치도록 브라우저에 알리는 방법이 있습니까? 오페라는 내가 최근에 모든 JS에 대해 1 주로 변경 한 31536000 초 (1 년)를 반환합니다!
업데이트 : 나는 <IfModule mod_expires.c>
내부에 먼저 추가 한 후 즉시 후 같은 오류 매번 경험
<Directory "/sandboxassets/js/">
AllowOverride All
<FilesMatch "ga\.js$">
Expires A172800
</FilesMatch>
<FilesMatch "tww\.js$">
Expires A172800
</FilesMatch>
</Directory>
: 다음 코드를 사용하여 500 내 사이트에 오류가 완전히 무너 뜨리는 원인이되는 .
이 코드는 내 사이트를 완전히 파괴하고 있습니다. 내가 사용한 정확한 코드로 질문을 업데이트했습니다. – TheLearner
어. 미안합니다. 나는 주변을 찌를 것이고 내가 찾을 수있는 다른 것을 볼 것이다. – malodie