2012-12-10 2 views
1

이 항목을 검색 할 때마다 브라우저 캐시를 비활성화하는 방법에 대한 정보를 얻습니다. 사용 설정에 대해서는 절대로 사용하지 마십시오.codeigniter를 사용하여 브라우저 캐싱을 올바르게 활성화하려면 어떻게합니까?

캐시를 사용하고 페이지를 재생성하지 못하도록 뒤로 버튼을 얻으려면 어떻게해야합니까?

+0

이것은 아파치, NGINX, Lighttpd 등 모든 웹 서버가 다르게 처리하므로 사용하는 웹 서버에 따라 다릅니다. 이것은 CI 자체와는별로 관련이 없습니다 ... – Brendan

+0

서버 쪽에서 페이지/쿼리를 캐싱하는 것에 대해 이야기하고 있습니까? CI에는 양쪽 모두를위한 적절한 방법이 있습니다. – Chords

답변

2

지금까지 내가 당신이이 메타 태그를 이용하여 데이터를 다시로드 브라우저를 강제로 제어 할 수 있습니다 알고 :

<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Cache-control" content="no-cache"> 
<meta http-equiv="Expires" content="0"> 

을하지만 힘이 캐시에서 읽을 수 없습니다. 캐시를 무시하도록 명시 적으로 지정하지 않고 페이지 데이터가 실제로 캐시되고 만료되지 않으면 브라우저 자체가이를 수행합니다.

이것은 클라이언트 측이기 때문에 CodeIgniter에 의존하지 않지만 CI의 html helper에 포함 된 meta() 함수를 사용하면 해당 메타 태그가 출력됩니다. 예컨대 :

echo meta('Cache-control', 'no-cache', 'http-equiv'); 

는 위의 두 번째 코드 라인을 생성합니다.

참고 :

  1. 2 하나가 HTTP/1.1 동안 1 회 메타 태그가 HTTP/1.0을 지정하지만 모두가 이전 버전과의 호환성을 허용하는 데 사용됩니다.

  2. 당신이 />

+0

좋은 측정을 위해 왜 메모 2를 작성하지 않았습니까? – WebweaverD

+0

@WebweaverD : 주 2에 대해 무엇을 의미합니까? –

+0

@LuisMartin 나는 그가 /로 메타 태그 닫기에 대해 말하고 있다고 믿는다>> –

2

브라우저 캐싱 메타 태그를 닫 기억 HTML 대신 XHTML을 사용하는 경우는 CodeIgniter를 함께 할 수 없다. 당신은 페이지를 캐시하기 위해 특별히하지 브라우저를 지시하는 HTML 메타 태그를 사용하거나과 같이 개별 페이지에 대한 캐시 만료를 설정할 수 있습니다

<meta http-equiv="expires" content="Mon, 10 Dec 2001 00:00:00 GMT" /> 

당신은 거기에 내일 날짜를 드롭 PHP의 비트를 사용할 수 있습니다. 브라우저는 (설정에 따라) 일반적으로 뒤로 버튼을 클릭 할 때를 포함하여 캐시에서 최대한 끌어옵니다. 다른 버튼에서 가져온 캐시와 동일하게 작동합니다.

아파치 서버에서 htaccess를 사용하여 만료 헤더를 설정할 수 있습니다 (다른 서버 유형에서이 작업을 수행하는 방법에 대해 문의해야합니다). 특정 유형의 콘텐츠를 캐시해야한다고 브라우저에 알려야합니다. 주어진 시간 기간 :

ExpiresByType text/html "access plus 60 seconds" 

이 동적 콘텐츠와 거래 그것은 경우이을 DO 60 초간 MIME 형식 텍스트의 어떤/HTML (이 CodeIgniter의 출력을 포함) 를 저장하기 위해 브라우저를 이야기하지만 그나마합니다 로드중인 모든 동적 페이지 콘텐츠를 중단하고 재 방문자가로드하는 콘텐츠의 변경을 중지합니다 (분명히이 두 번째 부분은 60 초 캐시와 같은 문제).

중요한 점은 귀하의 페이지가 하나의 것이 아니라 많은 부분으로 구성되어 있으며 일부는 캐시 (js, css, 이미지 등)에서 호출되어야한다는 것입니다. html이이 범주에 속합니다.) 브라우저는 캐시가 만료되지 않은 캐시에서 페이지의 모든 부분을 자동으로 호출합니다.

일반적으로 .htaccess (또는 유사한 방법)를 사용하여 CSS, 이미지 등을 캐싱 할 수 있습니다 (변경시 파일을 강제로드하기 위해 파일 이름의 버전 관리 사용).

또한 서버 측 캐싱을 활용한다 - CodeIgniter의이 전체 페이지에 대한이 작업을 수행하지만 난 필의 철갑 상어에 대한 부분 캐싱 라이브러리를 사용하기 위해 한 번 봐 걸릴 수 있도록 동적 사이트의 모든 종류이 매우 도움이 찾을하는 경향이 그나마 CI는 SS 캐싱에 관심이 있다면 :

https://github.com/philsturgeon/codeigniter-cache

이 늘 요청이 서버로 전송되는 중지하지만 요청이 덜 처리가 필요하고 정적 콘텐츠의 하나 개 또는 여러 조각으로 제공 될 수 있음을 의미합니다.

관련 문제