2012-08-27 2 views
2

에 빠른 질문이있었습니다.파일 이름에 CSS 버전이 있습니까?

파일 stylesheet.css을 만듭니다. 이 파일에서 : V = 1.0

body { 
    background: #FFFFFF; 
} 

내가 포함하는 스타일 시트에 대한 링크를 변경합니다 :

이제
body { 
    background: #000000; 
} 

이하자 내가이 파일의 버전 1.0을, 배경색을 변경라고? 브라우저가 스타일 시트를 새로운 변경 사항으로 다시로드하도록하여 이전 설정이 캐시되지 않도록할까요? 또한 이전 버전이 모두 올바르다 고 가정하면 버전을 기반으로 변경 사항을 적용하는 것이 좋습니다. 따라서 스타일 시트를 변경하고 v2.0을 보증 할 정도로 심각하게 표현한 것처럼 스타일 시트를 "v2.0"으로 커밋하십시오. 감사!

<link rel="stylesheet" href="stylesheet.css?v=1.0"> 
+0

[이 질문에 대한 최상위 투표 응답보기 (http://stackoverflow.com/questions/118884/what-is-an-elegant-way-to-force-browsers-to-reload-cached-css) -js-files). 이 문제에 대한 우아한 해결책이 있습니다. –

+0

'? '다음에 변수를 전달하면 브라우저가 CSS를 다시로드하게되는 해킹입니다. [CSS caching hack] (http://www.stefanhayden.com/blog/2006/04/03/css-caching-hack/)을 참조하십시오. –

답변

3

URL (쿼리 문자열 포함)이 브라우저의 캐시에 없으면 새 파일이 요청됩니다.

예, 이것은 버전 제어를 강제하는 유효한 방법입니다.

+0

원더풀. 그게 내가 알고 싶었던 전부 야. 고맙습니다! – eveo

0

? v = 1.0으로 변경하면 서버가 설정 한 모든 캐싱 메커니즘이 무시되고 브라우저는 스타일 시트에 대한 새 URL을보고 새 변경 사항을 다시 다운로드합니다. 사용자가 새로운 변경 사항을 즉시 볼 수 있도록합니다.

쿼리 문자열을 추가하지 않으면 웹 응용 프로그램에 구성된 캐싱 설정에 따라 사용자가 스타일 시트를 업데이트합니다.이 스타일 시트는 구성/사용중인 프레임 워크에 따라 크게 다를 수 있습니다.

2

이 여기에서 논의 된 바와 같이, 완전히 CSS를 다시로드 모든 브라우저를 강제로 수행합니다

What does '?' do in a Css link?

대답은 말한다 :

파일 이름에 약간의 고유성을 추가 할 수있다 그래야, CSS 파일을 변경하면 여분의 비트를 완전히 으로 변경하여 모든 클라이언트가 캐시 된 버전을 사용하지 않고 CSS를 다시로드하도록 할 수 있습니다.

웹 서버에서 매개 변수를 무시하고 정상적으로

StackOverflow의이 방법에 의해,이 기술을 사용 /Content/all.min.css 게재.

관련 문제