ASP.NET MVC 4의 디버그 모드에서 번들링 및 축소 사용


112

이것에 대한 다른 질문을 찾을 수 없다는 것을 믿을 수는 없지만 디버그 모드에서 번들링을 어떻게 활성화 합니까? 릴리스 모드에서 어떻게 활성화되는지 알고 있지만 디버그 모드에서는 번들링을 활성화하는 방법을 찾을 수 없습니다.

이것이 가능하거나 내가 뭔가를 놓치고 있습니까?

답변:


214

다음을 추가하여 활성화 할 수 있습니다.

BundleTable.EnableOptimizations = true;

RegisterBundles 메서드 (App_Start 폴더의 BundleConfig 클래스)에서.

자세한 내용은 http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification 을 확인 하십시오.

web.config를 변경할 수도 있습니다.

<system.web>
    <compilation debug="false" />
</system.web>

그러나 이것은 디버그 모드를 완전히 비활성화하므로 첫 번째 옵션을 권장합니다.

마지막으로, 두 세계를 최대한 활용하려면 다음과 같이 #if 컴파일러 지시문을 사용하십시오.

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif

4
한 단계 더 나아가 web.config (또는 최소한 AppSetting 항목)에 사용자 지정 구성 섹션을 추가합니다. 그러면 다시 빌드하지 않고도 최적화를 선택적으로 활성화 / 비활성화 할 수 있습니다.
Joe the Coder

1
또는 사용 #if DEBUG#if !DEBUG사전 컴파일러 문
Liam

또한 이것이 debug="true"구성을 재정의 하므로이 값을 하드 코딩하면 최적화가 항상 활성화 또는 비활성화 된다는 점을 명심하십시오
Liam

1
또는 "verbose"MVC를 다음과 같이 사용하십시오if (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium dec

웹 구성 옵션이 마음에 들면 구성 당 여러 웹 구성을 설정할 수도 있으므로 디버그 웹 구성이 true이고 릴리스가 false가됩니다. docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
Matthew Ellison

11

추가 BundleTable.EnableOptimizations = true;Application_Start()방법 Global.asax파일


-2

Global.asax에서 추가 BundleConfig.RegisterBundles(BundleTable.Bundles);

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles); // add this
        }

-5

공식 MS 사이트 가 불가능 디버깅하는 동안 상태를 활성화합니다. 그 이유는 비활성화되어있는 동안 디버깅이 더 쉽기 때문이라고 생각합니다. 응용 프로그램에 미치는 영향을 테스트 <compilation debug="true" />하려면 Web.config에서 설정 해야합니다.

@Hebe : MS 페이지를 인용하려면

JavaScript 파일이 번들되거나 축소되지 않기 때문에 개발 환경 (Web.config 파일의 컴파일 요소가 debug = "true"로 설정된 경우)에서 JavaScript를 디버그하기 쉽습니다.


제 경우에는 단순히 백엔드 C # 코드를 디버깅하고 싶었고, 애플리케이션이 설정되는 방식으로 인해 모든 스타일 시트와 스크립트를 제대로로드하려면 번들링이 필요합니다.
MLowijs 2013

3
@Ennosuke-디버그가 더 쉬울 수 있지만, 때로는 최소화 된 스크립트를 로컬에서 실행할 수 있어야하는 최소화 프로세스로 인해 Javascript 버그가 발생하기도합니다.
Joe the Coder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.