2012-02-23 3 views
0

아래 이미지를 보면 내 애플리케이션에 많은 javascript와 css가 있음을 알 수 있습니다. javascripts and css in my app http://i42.tinypic.com/zuiazk.jpg;ZEND의 자바 스크립트 파일과 CSS 캐싱

이러한 모든 스타일 시트와 스크립트를 페이지가로드하지 못하도록 모든 것을 캐시 할 수있는 방법이 ZEND 프레임 워크에 있습니까?

+0

"캐시 (cache)"란 무엇을 의미합니까? "젠드 (ZEND)의 한 가지 방법"이란 무엇을 의미합니까? 웹 서버가 클라이언트에게 파일을 캐시하도록 지시 할 수 있습니다. ZEND는 회사입니다. 당신이 말하는 제품이 어느 것인지 명확하지 않습니다. 코멘트에 대한 감사합니다 –

+0

.. * 내 질문 업데이트 * – rjmcb

답변

2

문제는 젠드 프레임 워크 문제가 아닙니다. 클라이언트 (웹 브라우저)가 콘텐츠를 캐시하여 다음 번에 필요로 할 때 콘텐츠를 요청할 필요가 없으며 서버가 콘텐츠를 제공 할 필요가 없도록 지시하는 것입니다.

일반적으로 서버에서 클라이언트로 캐시 헤더를 보내면됩니다. 전송해야하는 정확한 헤더는 브라우저에서 캐시하려는 기간에 따라 다릅니다. Google 검색 결과가 표시됩니다.

"표준"Zend Framework 응용 프로그램에서 이러한 외부 JavaScript 및 CSS 자원은 응용 프로그램의 public 폴더 안에 있으며 웹 서버에서 직접 제공됩니다. 젠드 프레임 워크는 결코 그것들을 건드리지 않습니다. 결과적으로 이러한 캐시 헤더를 보내는 방법은 Zend Framework가 아닌 웹 서버에 의존합니다.

예를 들어, Apache에서 mod_expires 모듈을 사용하면 Apache 자체에 올바른 캐시 헤더를 보내도록 지시 할 수 있습니다. public/assets 디렉토리에 .htaccess이 같은 추가 :

ExpiresDefault "access plus 1 month" 

이 더 많은 정보를 위해 mod_expires documentation를 참조하십시오.

물론 public/assets 디렉터리의 콘텐츠를 업데이트 할 때 모든 클라이언트가 캐시 된 콘텐츠를 다시 사용하지 않고 새 콘텐츠를 요청할 수 있습니다. http://example.com/assets/js/myscript.js에서 http://example.com/assets/js/myscript.js?v=20120223으로 변경하는 것과 같이 쿼리 문자열을 추가하여 요청한 리소스의 URL을 변경하면 강제로 새로드가 발생합니다.

관련 문제