Firefox에서 캐싱을 끄는 방법?


143

개발하는 동안 최신 버전의 JavaScript 파일을 사용하려면 Firefox에서 항상 "캐시를 지우십시오".

JavaScript 파일에 대한 캐싱을 완전히 해제하는 일종의 설정 (about : config)이 있습니까? 아니면 모든 파일에 대해 그렇지 않습니까?

답변:


229

Firefox 주소 표시 줄에 "about : config"를 입력하고 다음을 설정하십시오.

browser.cache.disk.enable = false
browser.cache.memory.enable = false

로컬로 개발하거나 HTML5의 새로운 매니페스트 속성을 사용하는 경우 about에서 다음을 설정해야 할 수도 있습니다.

browser.cache.offline.enable = false

이 작은 보석에 대해 어떻게 알지 못했습니까? about : config의 모든 종류의 장점!

2
network.http.use-cache가 없습니다. browser.cache.offline.enable을 변경해도 차이가 없습니다.
커티스

1
나는 이것이 좋은 대답인지 의심하지 않지만 최신 파이어 폭스 빌드에서는 더 이상 사실이 아닌 것 같습니다 (현재 개발자 에디션 47.0a2를 사용하고 있습니다). 웹 개발자 설정에서 캐싱을 비활성화하면 효과적입니다.
JosephStyons

61

웹 개발자 도구 모음은 아주 쉽게에 당신이 그것을 필요로 할 때 해제를 설정 할 수 있습니다 비활성화 캐싱 옵션이 있습니다.


1
CTRL-F5를 누르거나 다시로드 버튼을 클릭하는 동안 Shift 키를 누르고 있으면 이전에 수행 한 작업이지만 웹 개발자 도구 모음의 "캐시 사용 안함"기능을 사용하는 것이 좋습니다. 그런 식으로 firefox의 캐시를 완전히 비활성화 할 필요는 없습니다.
Jon Onstott

1
그러나 테스트 후 캐시를 활성화해야합니다. ;)
neurolabs

1
@Shanimal, 그것은 14.0.1에서 나를 위해 작동합니다, 당신은 제거 / 재설치 또는 무언가를 원할 수 있습니다.
Lucas

@Lucas doh! 내가 작업 한 서버의 항목이 캐싱되었지만 주석을 삭제하는 것을 잊었습니다 ... 감사합니다.
Shanimal

1
chrispederick이 최신 버전에서 몇 가지 새로운 파이어 폭스 변경 사항을 수정하기 전까지는 더 이상 작동하지 않습니다. 개발자에게 더 나은 about : config 솔루션을 사용하겠습니다.
Ligemer

12

사용하려고 노력 해요 CTRL- F5페이지를 업데이트?


6
나는 적어도 iframe과 프레임 세트가있을 때 이것이 안정적으로 작동하는지 의심합니다.
Thilo

2
맞습니다. JS / CSS를 항상 iframe에 다시로드하지는 않지만 Firefox에서는 최소한 해당 프레임을 새 탭에 팝업하여 다시로드 할 수 있습니다.
scunliffe

나는 항상 Ctrl-F5를 사용했습니다 .... 그런 다음 내가 작업하고있는 최신 버전의 js 파일을로드하지 않는다는 것을 알았습니다. ).
Gromer

Ctrl-F5는 자바 스크립트 파일의 캐싱을 재설정하지 않습니다. 무엇을 하는가는 세션과 쿠키를 지우는 것이지만 캐시 된 자바 스크립트와 스타일 시트는
지우지

10

JavaScript에 대해서만 캐싱을 비활성화하는 특정 옵션이 없으므로 캐싱을 완전히 비활성화해야합니다.

FireBug 에는 네트워크 탭의 드롭 다운 메뉴에서 브라우저 캐시를 비활성화하는 옵션이 있습니다.


8

같은 페이지에서 캐싱을 비활성화하려면 다음과 같이하십시오 : 참고 : 작업중 인 버전은 30.0입니다.

당신은 할 수 있습니다 :

웹 개발자 도구 모음 열기 오픈 웹 개발자

캐시 비활성화를 선택하십시오.

그 후 페이지는 자체 페이지에서 다시로드되고 모든 것이 다시 캐시되고 모든 furthure 요청이 매번 다시 채워지며 웹 개발자는 항상 열어두고 눈을 떼지 않고 항상 켜져 있는지 확인하십시오 (확인) .


8

Firefox 48 개발자 도구

도구 상자가 열려있을 때만 캐시를 해제 할 수 있습니다. 이는 웹 개발에 적합합니다.

  • F12
  • 오른쪽 상단 모서리에있는 기어 박스
  • 맨 아래로 스크롤 고급 설정
  • "캐시 비활성화 (도구 상자가 열려있을 때)"를 확인하십시오.

여기에 이미지 설명을 입력하십시오

https://stackoverflow.com/a/27397425/895245의 내용은 비슷하지만 그 이후로 위치가 약간 변경되었습니다.


1
고맙습니다 ... network.http.use-cache를 false로 설정하는 방법에 대한 정보가 있습니다 (이 스레드에는). 그러나 내 버전의 FF (53)에는 더 이상 설정이 존재하지 않습니다 ...이 기술은 훨씬 우수합니다. 어쨌든.
마이크 설치류

7

서버 측 코드로 작업하는 경우 임의의 숫자를 생성하고 다음과 같은 방식으로 src 끝에 추가 할 수 있습니다 ....

src = "yourJavascriptFile.js? randomNumber = 434534"

randomNumber는 매번 무작위로 생성됩니다.


이것은 새로 고칠 때마다 브라우저 캐시를 수동으로 지우는 것 외에 나에게 도움이 된 유일한 솔루션입니다.
커티스

4

나는 고대의 질문을 부활시키고 있다는 것을 알고 있지만 오늘이 문제를 해결하고 다른 해결책을 찾으려고 노력했습니다. 테스트를 원할 때 캐싱을 토글하는 것은 실제로 허용되지 않았으며 다른 사람들이 언급했듯이 하드 새로 고침 (ctrl + shift + r)이 항상 작동하지는 않습니다.

대신, 나는 dev 환경에서 내 vhost.conf 파일에 .htaccess에서 수행 할 수있는 다음을 선택했습니다.

<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>

내 개발 환경에서 이것은 js와 css가 항상 검색되도록합니다. 또한 나머지 브라우징에는 영향을 미치지 않으며 모든 브라우저에서도 작동하므로 Chrome / ie 등의 테스트도 쉽습니다.

스 니펫을 여기에서 발견하십시오. 다른 유용한 아파치 트릭도 있습니다 : http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess

고객이 항상 프로덕션 환경에서 최신 버전을 볼 수 있도록 각 업데이트에 포함 된 js의 쿼리 문자열을 증가시킵니다.

jquery.somefile.js?v=0.5

이렇게하면 클라이언트의 브라우저가 새 쿼리 문자열을 볼 때 로컬 캐시를 강제로 업데이트하지만 파일이 다시 업데이트 될 때까지 새 복사본을 캐시합니다


3

최선의 전략은 변경 될 때마다 재설정되는 JS 파일에 고유 한 URL을 작성하도록 사이트를 설계하는 것입니다. 이렇게하면 변경 사항이 없을 때 캐싱하지만 변경이 발생하면 즉시 다시로드됩니다.

특정 환경 도구에 맞게 조정해야하지만 PHP / Apache를 사용하는 경우 다음은 최종 사용자와 사용자 모두를위한 훌륭한 솔루션입니다.

http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/


3

CTRL- F5를 사용 하여 캐시를 무시하고 다시로드 할 수 있습니다 .

캐시를 사용하지 않도록 firefox에서 환경 설정을 설정할 수 있습니다

network.http.use-cache = false

js 파일에 대해 no-cache / Expires / Cache-Control 헤더를 보내도록 웹 서버를 설정할 수 있습니다.

다음은 아파치 웹 서버 의 입니다.


shift-f5 또는 ctrl-f5입니까?
Thilo November

3

FireBug를 사용하는 경우 네트워크 탭의 드롭 다운 메뉴에 브라우저 캐시를 비활성화하는 옵션이 있습니다.

여기에 이미지 설명을 입력하십시오


Firebug가 중단되었습니다.
K7AAY

1

게시 된 마지막 두 솔루션에는 장단점이 있지만 둘 다 IMHO의 훌륭한 솔루션입니다.

  1. 보안 강화를 위해 세션 ID를 URL에 포함 시키거나 원하지 않을 수 있습니다. 그러나 개발에서 중요하지는 않지만 제거하는 것을 잊어 버린 경우 어떻게해야합니까? 또한 실제로 작동합니까? 순차 번호 생성기 (세션에 저장된 적중 횟수 또는 0, 1, 0이면 1)와 같은 것이 필요하지 않습니까?

  2. 세션 ID (또는 시퀀서)를 추가하면 캐시하지 않으려는 모든 리소스에 세션 ID를 추가해야합니다. 한편으로는 적극적으로 개발하고 테스트하는 리소스만으로 세션 ID를 포함시킬 수 있기 때문에 더 좋습니다. 반면에, 그것은 당신이 그렇게해야한다는 것을 의미하며, 생산을 위해 그것을 제거해야한다는 것을 기억해야합니다.

  3. vhost.conf 또는 .htaccess 파일을 수정하면 세션 ID를 추가하고 제거 할 필요없이 트릭을 훌륭하게 수행 할 수 있습니다. 그러나 단점은 모든 js 및 css 리소스의 성능에 영향을 미치며 큰 파일이 있으면 속도가 느려집니다.

둘 다 훌륭하고 우아한 솔루션처럼 보입니다. 필요에 따라 다릅니다.


1

내가 사용 CTRL- SHIFT- DELETE당신이 한 번에 등 캐시, 리셋 쿠키, 모두를 취소 할 수 있도록 개인 정보 보호 기능을 활성화한다. 확인을 요청하는 대화 상자가 나타나지 않고 그냥 수행하도록 구성 할 수도 있습니다.


1

Nightly와 같은 Firefox의 상위 버전에는 "캐시 비활성화"라는 옵션이 있습니다. 톱니 바퀴를 클릭하여 찾을 수 있습니다. 이 옵션은 현재 세션에서만 작동합니다. 즉, 검사기를 닫고 다시 시작할 때 캐치를 비활성화하려면 다시 확인해야합니다.


캐시를 전역 적으로 비활성화하는 방법이 있었으면 좋겠습니다. 관리자를 열 때마다 확인 해야하는 것은 매우 성가신 일입니다.
Carlos Garcia

0

다양한 대안을 찾기 위해 2 시간 동안 탐색 한 후에 이것은 나에게 도움이되었습니다.

내 요구 사항은 스프링 보안 웹 응용 프로그램에서 js 및 css 파일 캐싱을 비활성화하는 것이 었습니다. 그러나 동시에 이러한 파일을 특정 세션 내에서 "캐싱"합니다.

모든 요청에 ​​고유 ID를 전달하는 것이 권장되는 접근 방법 중 하나입니다.

그리고 이것은 내가 한 일입니다 :-대신

<script language="javascript" src="js/home.js"></script>

나는 사용했다

<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>

위의 접근 방식에 대한 모든 단점은 환영합니다. 보안 문제들 ?


0

firefox 45에서 디스크 캐시 옵션은 browser.cache.disk.enable 값을 변경하여 설정할 수 있습니다.

"about : config"페이지에서 값을 설정할 수 있습니다.

http://kb.mozillazine.org/About:config_entries#Browser 나는 "browser.cache.disk.enable"에 대한 다음과 같은 설명을 발견 :

True (기본값) : browser.cache.disk.capacity에 지정된 용량까지 디스크 캐시를 사용합니다. False : 디스크 캐시를 사용하지 않습니다 (browser.cache.disk.capacity를 0으로 설정 한 것과 동일).


0

우선, 예를 들어 PHP가 브라우저가 캐시 날짜 (만료 시간)에 따라 파일을 갱신하도록 강제하기 위해이를 쉽게 수행 할 수 있습니다. 실험적인 요구에 필요한 경우 ctrl + shift + del을 사용하여 Firefox 브라우저에서 한 번에 모든 캐시를 지우십시오. 세 번째 해결책은 Firefox에서 종료되는 많은 애드온을 사용하여 타임 라인을 기준으로 캐시를 지우는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.