Programing

내 JS 파일 캐싱 Chrome 중지

lottogame 2020. 7. 3. 18:42
반응형

내 JS 파일 캐싱 Chrome 중지


JS 파일을 변경하지만 브라우저에서 실제로 변경되지는 않으므로 파일을 다시로드 할 때마다 파일 이름을 바꿔야합니다. 캐싱을 중지시키기 위해 추가 할 수있는 일종의 .htaccess 명령이 있습니까?

심지어 html 페이지 하드 코어를 캐싱하고 있습니다. 변경 사항을 보려면 전체 브라우저를 다시 열어야합니다. 서버 문제 일 수 있습니까?


오른쪽 상단의 설정 아이콘을 클릭 할 수 있습니다. ...| 더 많은 도구 | 개발자 도구 | 네트워크 | 캐시 비활성화 (DevTools가 열려있는 동안)

Windows의 경우 Mac에서 F12또는 CTRL + SHIFT + IMac에서 CMD + SHIFT + IDevTools가 열립니다.

Chrome 업데이트 2018 년 9 월의 새로운 경로 :

오른쪽 상단에서 설정 아이콘을 클릭하십시오. ...| 설정 | 환경 설정 | 개발자 도구 | 네트워크 | 캐시 비활성화 (DevTools가 열려있는 동안)


주소 표시 줄 옆에있는 새로 고침 아이콘을 마우스 오른쪽 버튼으로 클릭하고 캐시 비우기 및 하드 다시로드를 선택하면 더 빠른 방법

Chrome의 개발 도구가 열려 있는지 확인하십시오. 그건 그렇고 ...이 트릭은 Windows, Ubuntu 및 Mac OS 용 Chrome에서만 작동합니다.


새로 고침 버튼을 클릭 한 상태에서 Shift 키를 길게 누릅니다.


script.js?a=[random Number]PHP에서 생성 한 난수와 같은 것을 추가하십시오 .

pragma "no-cache"및 "cache-control = NO-CACHE"expire = 0을 사용해 보셨습니까? (나는 그들이 스크립트에 대해 말하는 것을 몰라).


몇 가지 아이디어 :

  1. Chrome에서 페이지를 새로 고칠 때 CTRL + F5를 수행하여 완전히 새로 고칩니다.
  2. 만료를 0으로 설정하더라도 세션 중에는 계속 캐시됩니다. 브라우저를 다시 닫았다가 다시 열어야합니다.
  3. 서버에 파일을 저장할 때 타임 스탬프가 업데이트되는지 확인하십시오. Chrome은 먼저 HEAD전체 GET 대신 명령을 실행하여 전체 파일을 다시 다운로드해야하는지 확인하고 서버는 타임 스탬프를 사용하여 확인합니다.

서버에서 캐싱을 비활성화하려면 다음과 같이 할 수 있습니다.

Header set Expires "Thu, 19 Nov 1981 08:52:00 GM"
Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"

htaccess로


빠른 단계 :

1) Chrome 메뉴-> 도구-> 개발자 도구로 이동하여 개발자 도구 대시 보드를 엽니 다.

2) 오른쪽의 설정 아이콘을 클릭하십시오 (장부입니다!)

3) "캐시 비활성화 (DevTools가 열려있을 때)"확인란을 선택하십시오.

4) 이제 대시 보드가 가동되는 동안 새로 고침을 누르면 JS가 캐시되지 않습니다!


문제는 must-revalidate파일을 다시 가져와야하는지 확인하기 위해 Chrome 이 Cache-Control` 헤더에 있어야한다는 것입니다.

언제든지 SHIFT-F5를 사용하여 Chrome을 강제로 새로 고침 할 수 있지만 서버에서이 문제를 해결하려면 다음 응답 헤더를 포함하십시오.

Cache-Control: must-revalidate

그러면 Chrome에서 서버를 확인하고 최신 파일이 있는지 확인합니다. 최신 파일이 있으면 응답으로 파일을받습니다. 그렇지 않은 경우 304 응답을 수신하고 캐시에있는 응답이 최신 상태임을 보증합니다.

이 헤더를 설정하지 않으면 파일을 무효화하는 다른 설정이 없으면 Chrome은 서버에 최신 버전이 있는지 확인 하지 않습니다 .

다음은 이 문제를 자세히 설명 하는 블로그 게시물 입니다.


내 웹 응용 프로그램을 업데이트 할 때 처리기를 사용하여 단일 JS 파일을 반환하여 서버에서 큰 히트를 피하거나 작은 쿼리 문자열을 추가합니다.

<script type="text/javascript" src="/mine/myscript?20111205"></script>

<Files *>
Header set Cache-Control: "no-cache, private, pre-check=0, post-check=0, max-age=0"
Header set Expires: 0
Header set Pragma: no-cache
</Files>

나는 이것이 "오래된"질문이라는 것을 안다. 그러나 캐싱으로 인한 두통은 결코 없습니다. 많은 시행 착오 끝에 웹 호스팅 제공 업체 중 하나가 CPanel을 통해 Cachewall이라는이 앱을 보유하고 있음을 발견했습니다. 방금 개발 모드 사용을 클릭하고 ... voilà !!! 그것은 오랫동안 고통받는 고통을 즉시 멈췄습니다 :) 이것이 다른 누군가를 돕기를 바랍니다 ... R


웹 사이트를 탐색 할 때 (실제 도메인이있는 회사 서버 호스팅) 동일한 CSS 파일을 얻었고 크롬에서 업데이트 된 버전을 얻을 수 없었습니다. Firefox에서 파일을 찾아 볼 때 업데이트 된 버전의 파일을 얻을 수있었습니다. 이 답변들 중 어느 것도 나를 위해 일하지 않았습니다. 또한 내 컴퓨터에 웹 사이트 파일이 있고 로컬 아파치 서버를 사용하여 localhost로 사이트를 탐색합니다. 아파치 서버를 종료하고 업데이트 된 파일을 얻을 수있었습니다. 어떻게 든 로컬 아파치 서버가 크롬 캐시를 망쳤습니다. 이 문제를 해결하기가 매우 어려웠으므로 누군가에게 도움이되기를 바랍니다.


  1. 개발자 도구 열기

    • F12
    • 또는 ...-> More Tools->Developer Tools
  2. 딸깍 하는 소리 Empty Cache and Hard Reload

    • 마우스 오른쪽 버튼으로 새로 고침 아이콘 (URL 주소 표시 줄의 왼쪽)
    • 또는 왼쪽 클릭 새로 고침 아이콘을 1 초 동안 누르고 있습니다.

You can open an incognito window instead. Switching to an incognito window worked for me when disabling the cache in a normal chrome window still didn't reload a JavaScript file I had changed since the last cache.

https://www.quora.com/Does-incognito-mode-on-Chrome-use-the-cache-that-was-previously-stored

참고URL : https://stackoverflow.com/questions/8392441/stop-chrome-caching-my-js-files

반응형