asp.net - 이미지 - 크롬 js 캐시




웹 페이지에서 CSS 캐싱을 방지하는 방법은 무엇입니까? (5)

개발 브라우저로 Chrome을 사용하는 경우 다음 두 가지 옵션이 있습니다.

1) 리로드 페이지 버튼을 1 초간 누르면 메뉴가 나타나 하드 페이지를 다시로드 할 수 있습니다.

2) Inspector 설정에서 브라우저가 절대 파일을 캐시하지 않도록 할 수 있습니다.

서버 구성보다 브라우저에서 캐싱을 사용하지 않도록 설정하여이 문제를 해결하는 것이 더 쉽고 빠르며 문제가 적습니다.

나는 xhtml, css 웹 페이지를 개발하는 법을 배우고있다. 종종 CSS에서 변경 작업을 수행하고 있지만 브라우저 캐시 때문에 페이지에 반영되지 않으며 수동으로 취소하면 최신 코드 효과가 표시됩니다. 브라우저에서 메시지를 캐시하지 않도록 코드에 넣을 수있는 것이 있습니까? 어떤 조언을 해주십시오.


링크에 임의의 버전 ID를 사용할 수 있습니다. 예를 들면 다음과 같습니다 :

<link   href=<%="'mystyle.css?version="+ DateTime.Now.ToString("yyyyMMddhhmmss") +"'"%>   rel="stylesheet" type="text/css"/>

여기서 myStyle.css는 스타일 시트 파일이고 임의의 다른 버전 ID를 생성하는 데 사용되는 DateTime.Now.ToString ( "yyyyMMddhhmmss") 함수입니다. 이 임의의 버전 ID를 사용하여 브라우저에서 CSS를 다시로드해야합니다.


응용 프로그램 버전 (또는 빌드 번호 또는 빌드 날짜)을 반환하는 GetVersion 메서드를 사용하여 클래스를 만들 수 있습니다.

마크 업에서 asp.net 응용 프로그램의 경우 다음과 같이 지정할 수 있습니다.

<script src="Scripts/some.js?version=<%= Common.GetVersion%>" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="~/styles/Style.css?version=<%= Common.GetVersion%>" />

이렇게하면 정적 파일에 대한 URL의 일부가 모든 빌드 (또는 모든 버전)에서 변경되므로 브라우저가 파일을 다시로드하게됩니다.


이 작업은 .htaccess 파일을 통해 수행 할 수 있습니다. 이 코드를 웹 사이트의 루트에있는 .htaccess라는 파일에 넣으십시오.

<filesMatch "\.(html|htm|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>

F5 키를 5 번에서 6 번 연속 눌러 주거나 기록을 지우십시오. 영구 솔루션이 아니라 내게 맞는 솔루션입니다.





xhtml