2017-09-13 6 views
2

CSS 파일이 Chrome 브라우저에 캐시되지 않는 것으로 나타났습니다. 내 응용 프로그램 각도-CLI 및 필요한 모든 캐시 제어 헤더에 의해 만들어 5 분으로 설정 헤더 만료되어 예상대로 캐시 동일한 응답 헤더를 설정크롬이 css 파일을 캐싱하지 않습니다. 캐싱은 .js/.png 파일에서 작동합니다.

Accept-Ranges:bytes 
Cache-Control:max-age=600 
Content-Encoding:gzip 
Content-Type:text/css 
Date:Wed, 13 Sep 2017 05:11:17 GMT 
ETag:W/"441246-1505278984000" 
Expires:Wed, 13 Sep 2017 05:21:18 GMT 
Last-Modified:Wed, 13 Sep 2017 05:03:04 GMT 
Server:Apache-Coyote/1.1 
Transfer-Encoding:chunked 
Vary:Accept-Encoding 

JS 파일을. CSS 파일은 Firefox Mozilla에서도 캐시됩니다. 나는 글을 통해 검색하고 몇 게시물을 제안했다 : 어떤 SSL 오류가 발생하면 자체 서명 된 인증서를 제시하고 HTTPS 작업

  1. 자원 때때로 크롬에 의해 캐시되지 않습니다. 하지만 제 경우에는 .js, .png 파일과 같은 다른 모든 파일은 동일한 채널에서 작동하며 캐시됩니다.

  2. Transfer-Encoding: chunked은 크롬에서 캐싱에 문제가 있습니까? 그것은 FireFox에서 잘 작동합니다.

  3. gzip 압축하지 크롬 잘 작동하지 : https://github.com/expressjs/compression/issues/64

모든 포인터/제안?

답변

1

응답 헤더가 Transfer-Encoding:chunked 인 경우 Chrome에서 리소스 파일을 캐시하지 않는 것으로 보입니다. 리소스 파일의 크기가 작은 경우에도이 응답 헤더가 설정되었습니다. HTTP 서버 구성에 따라 헤더가 자동으로 설정된다고 생각합니다. 이 구성은 파일 크기 등을 기준으로 할 수 있습니다.

HTTP 구성을 설정하기 위해 서버 구성을 제어 할 수 없기 때문에 은 응답 헤더 설정을 완료했습니다. Transfer-Encoding: identity. 이 응답 헤더에서 http 서버는 헤더를 추가로 수정하지 않고 Content-Length 헤더에도 넣습니다. 응답에서 Content-Length 헤더를 사용하면 Chrome에 리소스 파일을 캐시 할 수있는 명확한 그림을 제공합니다.

0

동일한 웹 사이트에서 동일한 문제가 발생하지만 동일한 웹 응용 프로그램을 다른 IIS 웹 사이트 (동일한 IIS)에 배포하면 모든 것이 캐시됩니다. 응용 프로그램 풀 재활용에 도움이되지 않았습니다.

IIS를 중지하고 시작한 후에 만 ​​두 웹 사이트가 이제 CSS와 CSS 파일을 Chrome에 저장합니다. 저를 때려 눕히십시오, 그러나 당신은 그것을 시도 할 수 있었다.

+0

네, 맞을 수도 있습니다. HTTP 서버의 구성과 관련이 있습니다. 필자의 경우에는 서버 설정에 대한 자유/액세스 권한이 없으므로 JS 파일에 대한 응답 헤더 'Transfer-Encoding : identity'를 설정했습니다. – Nilesh