2012-05-02 4 views
6

ASP.Net 웹 사이트의 자바 스크립트 및 스타일 시트 참조에서 캐시 버스터 변수를 자동으로 적용 및/또는 업데이트하는 좋은 전략은 무엇입니까?ASP.Net의 캐시 버스터 전략

예.

<script type="text/javascript" src="/js/myScript.js?rev=12345" /> 

UPDATE에

<script type="text/javascript" src="/js/myScript.js" /> 

변형 : 지속적인 통합이 필요하지 않습니다. 나는 (Jenkins가 특정하게) 연속적인 통합을 사용하고 있기 때문에, 변수를 업데이트하는 방법이 빌드 번호를 기반으로 한 것이면 좋을 것입니다.

원래 변수를 소스 코드에 수동으로 적용하고 전략을 통해 업데이트 할 수는 있지만 원래의 변수가 적용되지 않으면 전략이 적용될 수도 있습니다 (예 : 레거시 코드).

내 머리 꼭대기에서 모든 * .aspx 및 * .ascx 파일을 검색하고 적절한 표현을 찾아서 업데이트하는 Powershell 스크립트를 사용한다고 상상할 수 있습니다. 그러나 당신은 그들이 정규 표현식을 사용하는 방법에 대해 뭐라고하는지 알아요 ... 그때

답변

3

ASP.Net에서 캐시 버스터 변수에 대한 답변은 다양한 CSS/JS의 축소를 라이브러리 중 하나를 사용하는 두 가지 문제가 :) 있습니다.

나는 캐시 버스터 변수가 우리의 서버에 각 배포으로 업데이트해야한다고 생각하지만, 축소를 라이브러리는 내용 개별 CSS/JS 파일의에 근거하는 해시 태그를 적용합니다.

.Net 3.5 웹 사이트를 개발할 때부터 약간의 제한이있었습니다. 나는 SquishIt (NuGet 패키지로 제공됨)을 사용하여 끝내었고, 쉽게 통합 할 수있었습니다.

<link href="/<my_css_path>/<css_file_1>.css" rel="stylesheet" type="text/css" /> 
<link href="/<my_css_path>/<css_file_2>.css" rel="stylesheet" type="text/css" /> 
<link href="/<my_css_path>/<css_file_3>.css" rel="stylesheet" type="text/css" /> 

<%= Bundle.Css() 
    .Add("~/<my_css_path>") 
    .Render("~/<my_css_path>/combined_#.css") %> 

되었다 그것은 기본적으로 그것입니다! 자바 스크립트와 비슷한 아이디어. 로컬 개발을 위해 web.config에 debug="true"을, 스테이징/프로덕션 환경에 debug="false"을 사용한다면, SquishIt은 로컬 개발을 위해 CSS/JS를 분리 및 비 분리 상태로두고 다음을 결합합니다. 해시 (캐시 무효화 용) 다른 환경.

+0

정말 멋지게 들었습니다. 현지화되지 않은 버전에 대해 생각해 봤기 때문에 기쁩니다. – devlord

3

또한 카세트, RequestReduce 및 번들을 살펴볼 수도 있습니다.

Cassette : JavaScript, CoffeeScript, CSS, LESS, Sass 및 HTML 템플릿을 자동으로 정렬, 연결, 축소, 캐시 및 버전 변환합니다.때로는 훨씬 더 빨리 - -

RequestReduce

빨리 당신의 웹 사이트를 만듭니다 거의없는 노력으로

  • 자동 당신의 배경 이미지에서 스프라이트를 생성
  • 는 스프라이트 PNG 포맷 및 압축
  • 축소하고 CSS를 최적화하고 자바 스크립트
  • 캐싱 헤더 및 ETag 최적화
  • 기본 ASP 및 PHP를 포함한 모든 IIS 웹 사이트에서 실행
  • "컴파일, 스크립트의 축소, 결합 이하/말대꾸/CSS는/JS/커피 스크립트 파일 :
  • 는 말대꾸 커피 스크립트

Bundler

  • 이 적은 컴파일 내용 전체의 여러 웹 서버에게
  • 작품 잘와 CDN을 동기화 할 수 있습니다 . MVC에서 쉽게 사용할 수 있습니다. "

  • 관련 문제