2014-06-22 2 views
4

sails.js를 프레임 워크로 사용하는 node.js의 애플리케이션이 있습니다. 정보를 사용자에게 표시하기 위해 일부 .ejs 파일을 구현했습니다.
앱 메뉴에서 링크를 사용하여 탐색 할 때 '304 - 끄덕임 수정 됨'응답이 표시됩니다. 또한 응답의 헤더 내에서 참조하십시오 Etag, 일치하지 않는 경우 또는 만료.
일부 게시물을 읽은 후, 나는/설정/express.js 내 "app.disable ('ETAG')" 문을 추가 한customMiddleware 기능과 ETAG에있는 파일의 경우 - 없음 - 일치하지 않습니다 더 이상 보냈습니다.
어쨌든 이제는 다른 페이지 (304 응답 포함)에 액세스 할 때 서버에 대한 요청이 표시되지 않습니다.
sails.js가 내 페이지 캐싱을 중단하도록하려면 어떻게해야합니까?응답을 캐싱하지 않도록 sails.js 구성

res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); 
res.header('Expires', '-1'); 
res.header('Pragma', 'no-cache'); 

이 라인은/설정/express.js 파일에서 customMiddleware 기능에 포함되어야합니다

답변

11

대신 정책에 추가 한 다음 원하는 특정 페이지/요청에 적용 할 수 있습니다. 전체 응용 프로그램에 대해이 정책을 설정하지 않으려는 경우에만 적용 할 수 있습니다.

/api/policies/nocache.js :

/** 
* Sets no-cache header in response. 
*/ 
module.exports = function (req, res, next) { 
    sails.log.info("Applying disable cache policy"); 
    res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate'); 
    res.header('Expires', '-1'); 
    res.header('Pragma', 'no-cache'); 
    next(); 
}; 
+0

이것은 실제로 아주 좋아 보인다. 나의 다음 목표는'config/env'의'development' 환경에서만 이것을 수행하는 방법을 찾는 것입니다. –

1

이 코드를 추가 아래 내 문제를 해결할 것으로 보인다.

동일한 결과를 얻는 더 깨끗한 방법이있는 경우 답장을 보내주십시오.

+0

더 좋은 방법이 같은 결과를 얻을 수 있지만 @ c1freitas는 앞서 언급 한 것처럼 특정 페이지를 수행 할 수 있습니다. – Victor

관련 문제