CI 묻고 답하기

제목 css나 js 파일의 캐싱이 안되게 하는 방법이 있나요?
글쓴이 하품 작성시각 2013/10/30 16:43:26
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 18494   RSS
 코드이그나이터를 처음 사용하고 있습니다.
css나 js 파일은 index.php 가 있는 htdocs 폴더 아래에 폴더를 따로 분류하여 넣어놨습니다.

사용해보니 css나 js파일을 코드이그나이터가 자동으로 빈칸제거 등의 작업을 해주더군요.
그리고 반응성 향상을 위해 코드이그나이터가 css와 js파일을 캐시하고 있는듯 합니다.

문제는 그 때문에 css파일을 변경하고 변경된 사항을 바로바로 확인할 수가 없습니다.
메타 태그로 캐시 사용안하는 태그를 넣어주거나 CI 컨트롤러에서 $this->output->cache(0) 이런식으로 해봐도 달라지는게 없네요.

이런부분에 대한 캐시 처리는 어디서 해줘야 하나요?
 다음글 장바구니 질문 드립니다. (4)
 이전글 사용자마다 세션 만료 시점을 다르게 하려면.. (3)

댓글

변종원(웅파) / 2013/10/30 16:53:03 / 추천 0
따로 선언한 부분이 없다면 ci가 캐시에 영향을 미치는 것은 없습니다. ($this->output->cache(n) 등)

서버와 브라우저의 문제이죠.

no-cache 검색해서 적용하세요.
하품 / 2013/10/30 17:12:31 / 추천 0
 아파치 서버의 mod_expire 모듈은 사용을 안하고 있고
php의 header 함수를 이용하여 캐시를 사용 안하도록 하는 헤더를 추가하도록 하였습니다.
html 파일의 <head> 사이에도 메타태그를 이용하여 캐시 사용안하는 코드역시 추가되었구요.

음... view 폴더 아래에 php 파일이 들어가 있습니다.
이 php파일에서 php 코드를 수정하면 바로 적용이 되요.
하지만 <link> 태그와 <script>태그를 이용하여 불러온, htdocs 밑에 있는 css와 스크립트 파일을 수정하면 페이지에 바로 적용이 되질 않습니다.

뭐가 문제일까요 ㅠㅠ
변종원(웅파) / 2013/10/30 17:47:32 / 추천 0
크롬, 파폭은 딱히 다른 셋팅을 안해도 적용이 잘되고
ie는 옵션에서 페이지를 열때마다로 변경하여 사용중입니다.

예전에는 css가 바로 적용안되서 임시인터넷파일(캐시) 지우고 사용했죠.

파폭 파이어버그 - 넷탭에서 css 파일이 200으로 나오는지 304로 나오는지 보세요.

브라우저는 어떤걸로 테스트중이신데요?
하품 / 2013/10/30 17:56:46 / 추천 0
 파이어폭스, 크롬 둘다 테스트 중입니다.
파이어버그랑, 크롬 개발자 툴 모두 브라우저 캐시를 꺼놓은 상태라 항상 200OK 뜨고 있습니다.
하품 / 2013/10/30 18:03:56 / 추천 0
추가로 css 파일이름이 style.css 라면 접속시 자동으로 

A.style.css.pagespeed.cf.4KeCeLp1Qb.css

란 이름의 형태로 불러오더군요. 코드이그나이터 설치 이후 딱히 무언가 설정을 건드린게 없음에도 저렇게 된다면 기본적으로 코드 이그나이터의 어떤 설정때문에 그런것이 아닌가 해서 질문을 올렸습니다.


css 파일은 직접 <link>태그를 코딩하던 다른 php파일로 분류하여 require, include 를 사용하던 모두 동일한 상황이 발생합니다.

하품 / 2013/10/30 18:22:10 / 추천 0
 해결했습니다 -_-;;

파일명 보다가... 으응? 하고 찾아보니 코드이그나이터가 아닌 아파치 모듈중 mod_speedpage 설정 문제였네요.
보통은 이 모듈이 작동안하는걸로 아는데...
bitnami의 LAMP 를 이용해 설치하다보니 그쪽에서 기본 설정으로 잡아 두었나 봅니다.

엉뚱한 부분서 보고있으니 답이 안나오지.. ㅠㅠ

답변 감사드립니다.