MVC4 번들의 {version} 와일드 카드


155

MVC 4에는 번들이 있습니다. 번들을 정의하는 동안 폴더의 모든 파일에 *와 같은 와일드 카드를 사용할 수 있습니다.

아래 예에서 무엇을 -{version}의미합니까?

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js"));
}

답변:


177

-{version}기본적으로 버전에 매핑 정규식 , 또는 정확한 수 : (\d+(?:\.\d+){1,3}).
사용은 *당신이 번들 경우, 예를 들어, 너무 많이 잡아 경향 jquery*, 즉 포함됩니다 jquery-ui순서 최대뿐만 아니라 어떤 힘 엉망. 그러나를 사용 jquery-{version}.js하면 jquery를 업그레이드 할 때마다 번들 정의를 업데이트하지 않아도됩니다.

추가 사항 :

  • {version} 디렉토리가 아닌 경로의 마지막 부분 (기본적으로 파일 이름)에 대해서만 작동합니다.
  • 동일한 폴더에 여러 버전의 jquery가 모두 포함됩니다.

2
폴더에 여러 버전의 예 : jquery가있는 경우 어떻게 작동합니까?
pavsaund

18
정규 표현식이므로 모든 일치 항목을 포함하므로 동일한 디렉토리에 여러 버전이 있으면 이것을 사용하지 않을 것입니다.
Hao Kung

3
{version}은 (는) 경로 내에서 작동하지 않는 것 같습니다. 직장에서 파일 이름이 아닌 경로에 부트 스트랩 버전이 있으므로 다음과 같이하려고합니다. "~ / Content / Libraries / bootstrap / {version} /css/bootstrap.css"그러나 실행할 때 RegisterBundles, "Directory does not exist"라는 ArgumentException이 발생합니다.
Michael Nelson

4
디렉토리에서 일하지 않기 위해 투표하십시오. 디렉토리에서 작동시키는 솔루션이 있습니까?
Zapnologica

3
편집 : 결코 신경 쓰지 말고 명확하게 여기에 설명하십시오! asp.net/mvc/ 개요 / 성능 / 번들링 및 축소 감사합니다!
Jon Koeter

12

이 번들은 스크립트 이름으로 버전 번호를 수용 할 수 있습니다. 따라서 애플리케이션에서 NuGet을 통해 또는 수동으로 jQuery를 새 버전으로 업데이트 할 때는 코드 / 마크 업 변경이 필요하지 않습니다.

번들링에 대한 자세한 내용은 다음 링크를 참조하십시오. http://weblogs.asp.net/jgalloway/archive/2012/08/16/asp-net-4-5-asp-net-mvc-4-asp-net- 웹 페이지 -2- 및-비주얼 스튜디오 -2012-web-developer-features.aspx


3
이전 버전이 실제로 제거되어 있는지 확인하십시오.
Triynko

{version}을 사용할 때 Jquery가 정의되어 있지 않고 실제 버전으로 바꾸면 3.1.1이 올바르게 작동합니다.
Marc Roussel 2

0

~/Scripts/jquery-{version}.js포함되어 있습니다. 여기서 번들링 시스템은 경로에 {version} 선택기를 지정할 때 최고 버전의 jquery 파일을 참조 할 수있을 정도로 똑똑합니다. 또한이 번들링 시스템은 정의 된 경로에서 사용 가능한 경우 파일의 축소 된 버전을 선택할 수있을 정도로 똑똑합니다.

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