2014-09-17 1 views
7

:최적화되지 않은 번들에 캐시 버스터를 추가 하시겠습니까? 나는 다음과 같은 MVC에 번들링을 사용하고있는거야

@Scripts.Render("~/bundles/scripts.js"); 

BundleTable.EnableOptimizations = true로이 렌더링 :

<script src="/js/header.js"></script> 
<script src="/js/content.js"></script> 
<script src="/js/footer.js"></script> 

수를인가 :

<script src="/bundles/scripts.js?v=RF3ov56782q9Tc_sMO4vwTzfffl16c6bRblXuygjwWE1"></script> 

BundleTable.EnableOptimizations = false이 같은 렌더링 내 자신의 사용자 정의 캐시 버스터를 포함하도록 최적화되지 않은 버전을 가로 채기 위해? 예를 들어

:

<script src="/js/header.js?v=12345"></script> 
<script src="/js/content.js?v=12345"></script> 
<script src="/js/footer.js?v=12345"></script> 
+1

[번들링이 해제되어 있지만 여전히 버전 관리가 필요합니다] (http://stackoverflow.com/questions/18764617/bundling-is-turned-off-but-i-still-want-versioning) – MikeSmithDev

답변

5

왜해야합니까? 개발 중에 어쨌든 BundleTable.EnableOptimizations = false은 아무 것도 캐시되지 않으며 생산에서는 이되어야합니다. BundleTable.EnableOptimizations = true이 필요합니다.

짧은 대답은 아니요,입니다. 이미 언급 한 이유 때문에 물어볼 수있는 기능이 없습니다. 이러한 기능은 단순히 필요하지 않습니다.

+0

감사합니다. chris, ive는 프로덕션 환경에서 최적화를 비활성화 할 수있는 구성을 가지고 있습니다. 기본적으로 최적화 배포로 예기치 않은 문제가 야기되는 경우를 대비하여 신속하게 대체 할 수 있습니다. 어떤 경우에는 기존 캐시 버스터를 그대로 두는 것이 좋습니다. 나는 이것을하기 위해 나 자신의 커스텀 MVC 헬퍼를 만드는 것이 필요하다고 생각한다. 다시 한번 감사드립니다. – Curt

+0

@Chris :'BundleTable.EnableOptimizations = false 아무 것도 캐시되지 않습니다 .'하지만 클라이언트는 여전히 정적 js 및 css 파일에 대한 요청을 캐시하지 않습니까? 클라이언트가 동일한 이름의 오래된 파일을 가지고 있으면 서버로 이동하지 않습니다. 캐시를 파기하여 어떤 버전 쿼리 매개 변수를 해결할 수 있습니까, 아니면 내가 잘못 했습니까? – KyleMit

+0

@KyleMit :이 성명서의 요점은 "개발 중"이었다. IIS Express는 클라이언트가 리소스를 캐시하지 않도록 알려주는 헤더를 보냅니다. 사실, 클라이언트 *는 이것을 무시하고 캐시 할 수 있습니다. 모든 브라우저는 서버의 캐싱 요청을 충실하게 준수합니다. –