정적 파일 (.js, .css)을 참조하는 HTML 파일을 렌더링 할 때 캐시 무효화는 어떻게 처리합니까? 파일을 변경할 때마다 수동으로 blabla.css? v = VERSIONNUMBER을 (를) 변경 하시겠습니까? 파일의 mtime을 기반으로하는 자동 메커니즘이 있습니까?node.js 캐시 분할 기술
답변
HTTP 프로토콜로 캐싱을 남기고 싶습니다. 각 응답에 ETag
응답 헤더를 제공하고 If-none-match
요청 헤더를 확인하여 조건부 요청에 대한 지원을 추가하기 만하면됩니다.
엔터티 태그를 계산하는 좋은 방법은 파일을 저장하는 방법에 따라 다릅니다. 일반적인 * nix 파일 시스템에서 inode 값은 좋은 시작입니다.
예 : 특별한 경우
fs.stat(filePath, function(err, stats) {
if (err || !stats.isFile()) {
//oops
}
else {
var etag = '"' + stats.ino + '-' + stats.size + '-' + Date.parse(stats.mtime) + '"';
//if etag in header['if-non-match'] => 304
//else serve file with etag
}
});
, 당신도 파일 변경 자마자 항목을 무효화하기 위해 fs.watchFile()
콜백을 메모리에 ETAG 또는 파일을 캐시하고 등록 할 수 있습니다.
감사합니다. 하지만 일부 브라우저에서는 이러한 헤더를 무시하고 캐시에 파일이있는 경우 304를 확인하지 않아도됩니다. 어떻게 든 제안 사항이 여전히 해결되지 않은 것입니까? –
게다가 .. 파이어 폭스가 .. 음 .. * 거짓말 * 할 수 있니? (방화 녀석을 통해)? 그 Net 탭에서 _reality_에서 내 서버에 충돌하거나 Fiddler에 나타나지 않는 동안 (정적 인 파일을 가져 와서 좋은 200 HTTP 응답으로 반환하는 요청을 봅니다. 그들은 매우 공격적인 로컬 캐시에 의해 처리됩니다) - 내가 뭔가를 놓친다면 다시 이해시켜주세요. –
- 1. 오디오 파일 캐시 설정에 가장 적합한 기술
- 2. 기술?
- 3. node.js 세그멘테이션 오류 : 11
- 4. Mustache.js 렌더링 기술
- 5. 분할
- 6. 분할
- 7. node.js 동시성
- 8. node.js 데이터베이스
- 9. 이미지 세분화 기술
- 10. 기술 페이스 북 검색 뒤에 기술
- 11. 셰어 포인트 캐시 무엇입니까
- 12. 채팅 기술 선택에 대한 조언이 필요합니다.
- 13. 다중 분할 이미지로 이미지 분할
- 14. UI 기술
- 15. Spiceworks 기술
- 16. Stumbleupon.com 기술
- 17. 기술 추측
- 18. 현지화 기술
- 19. 캐시 및 출력 캐시
- 20. Restler가있는 Node.js 및 SSL
- 21. Node.JS 상위 프로세스 ID
- 22. JavaScript, node.js 및 security
- 23. node.js 실시간 게임
- 24. Node.js + MySQL - 트랜잭션 처리
- 25. 은 node.js 'console.log 비동기입니까?
- 26. 비대칭 디지털 서명 Node.JS
- 27. Node.js console.log performance
- 28. POST 요청과 Nerve가없는 Node.js
- 29. node.js CSS 파일 전송
- 30. RabbitMQ Messaging in Node.JS?
가장 간단한 방법으로 앱의 시작 타임 스탬프를 각 정적 리소스에 대한 쿼리 문자열로 추가하면됩니다. 예 : http://ankitjain.info/ankit/2013/12/05/cache-busting-nodejs-express-jade/ – ankitjaininfo