418
2015-10-19 11:06:39
8
2642

로그인 화면 뜰때 캐시 삭제하는 방법 ?


logo를 변경하는 부분이 있습니다.

예를 들면 logo.png 가 있는데 변경하면 logo.png라는 이름으로 덮어씌워지게 됩니다.


익스플로러에서는 문제가 없느가 크롬에서는 캐쉬로 이전 이미지가 출력됩니다.

데이터는 잘 들어갔는데두요


방법은 파일명을 db에 저장해서 해당 db로고를 출력하면 될거 같은데

더 쉬운 방법은 새로 로그인 이나 로고 변경을 할때 캐쉬 값이 초기화 되면 될것 같습니다.


혹시 캐쉬값을 초기화 하는 소스도 있나요 ?

0
1
  • 답변 8

  • Courage
    2k
    2015-10-19 11:51:13

    아래와 같이 메타 테그를 삽입 후 확인해보세요


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


    1
  • Courage
    2k
    2015-10-19 11:53:14

    아.. 혹시나해서...

    메타테그는 head 테그 내에 포함되어야 합니다.

    0
  • 418
    2015-10-20 10:05:52

    화면 로딩 될때 캐시에서 먼저 찾지 않고 무조건 서버에서 받아오게 하는건 없나요 ?

    0
  • Courage
    2k
    2015-10-20 10:31:01

    말씀하시는 캐시는 브라우저에서 사용하는 것이기 때문에 브라우저 설정을 변경해야 합니다. 브라우저의 캐시에 대한 메커니즘이 그러하다면 방법은 없겠죠..

    근데 캐시를 검색하고 없으면 서버에서 가져오는 작업이 체감이 되시나요??

    그렇게 느리지 않을듯 합니다만.. 체감이 있다면 캐싱되지 않고 서버로 부터 로딩할때의 속도가 체감이 있는게 아닌가요??

    0
  • 418
    2015-10-20 10:39:05

    캐시에서 없으면 서버에서 가져오게 되는데 

    체감상 거의 똑같죠 요즘은


    그래서 아예 캐쉬에서 안찾고 서버에서 찾아오면 변경한 이미지가 바로 출력되니 그렇게 할수있으면 해보려고 했는데 안되겠네요.. 어제부터 계속 보고있는데 흠..ㅜㅜ

    0
  • 418
    2015-10-20 12:52:02


    var test = '/javascripts/css/some.css?'+(new Date()).getTime();
    var test2 = '<link rel="stylesheet" type="text/css" href="'+test+'">';
    document.write(test2);

    이렇게 하면 새로운 파일로 인식되어서 캐시와 상관없이 출력 되네요

    0
  • Courage
    2k
    2015-10-20 13:29:04

    위에 작성하신 방법도 캐시와 상관없이 출력되는건 아닙니다.

    말씀하신 것처럼 some.css?[date] css가 캐싱되어 있나 확인 후 서버에서 가져오죠.

    그러나 [date] 부분이 항상 변경되기 때문에 캐싱된게 없어서 서버에서 가져오겠죠.

    즉, 캐쉬에 존재하는지 확인 후 서버에서 자원 로딩하기 부분은 똑같습니다.

    위와같은 변형된 방법보단 표준으로 제공되는 meta 테그를 사용하길 권장드립니다.

    0
  • 418
    2015-10-20 13:40:56

    네네 맞습니다. 캐시에 확인ㅇ해보고 새로운파일로 인식해서 서버에서 가져오는데요

    다른게 아니라 meta tag로 하니 될때도 있고 안될때도 있어서요


    첨엔 잘 되서 신났었는데

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.