[asp.net] ASP.NET 번들 축소를 비활성화하는 방법
내가 가진 debug="true"
내 모두 의 Web.config (들) , 그리고 난 그냥 내 번들이 축소 된 싶지는 않지만 내가 아무것도 사용하지 않도록 것 같다. 시도했습니다 enableoptimisations=false
, 여기 내 코드가 있습니다 :
//Javascript
bundles.Add(new ScriptBundle("~/bundles/MainJS")
.Include("~/Scripts/regular/lib/mvc/jquery.validate.unobtrusive.js*")
.Include("~/Scripts/regular/lib/mvc/jquery.validate*")
.Include("~/Scripts/regular/lib/bootstrap.js")
.IncludeDirectory("~/Scripts/regular/modules", "*.js", true)
.IncludeDirectory("~/Scripts/regular/pages", "*.js", true)
.IncludeDirectory("~/Scripts/regular/misc", "*.js", true));
//CSS
bundles.Add(new StyleBundle("~/bundles/MainCSS")
.Include("~/Content/css/regular/lib/bootstrap.css*")
.IncludeDirectory("~/Content/css/regular/modules", "*.css", true)
.IncludeDirectory("~/Content/css/regular/pages", "*.css", true))
답변
당신이 가지고 있다면 debug="true"
에 Web.config를 하고 사용하는 Scripts/Styles.Render
페이지의 번들을 참조하려면, 그 번들 및 축소를 모두 해제해야합니다. BundleTable.EnableOptimizations = false
디버그 참 / 거짓 플래그와 상관없이 항상 번들링과 축소를 모두 해제합니다.
Scripts/Styles.Render
헬퍼를 사용하지 않습니까? 를 통해 번들에 대한 참조를 직접 렌더링하는 경우BundleTable.Bundles.ResolveBundleUrl()
항상 축소 / 번들 된 컨텐츠가 제공됩니다.
답변
조건부 컴파일 지시문은 친구입니다.
#if DEBUG
var jsBundle = new Bundle("~/Scripts/js");
#else
var jsBundle = new ScriptBundle("~/Scripts/js");
#endif
답변
비활성화 번들 및 축소를 위해 그냥이 당신 넣어 에서 .aspx 파일 (이 뜻을 비활성화 최적화를하더라도 debug=true
에서 의 Web.config )
vb.net :
System.Web.Optimization.BundleTable.EnableOptimizations = false
c # .net
System.Web.Optimization.BundleTable.EnableOptimizations = false;
당신이 넣을 경우 EnableOptimizations = true
이 번들 및 축소하세요 않더라도 debug=true
에서 의 Web.config
답변
변환을 지우면 번들에서 축소를 끌 수 있습니다.
var scriptBundle = new ScriptBundle("~/bundles/scriptBundle");
...
scriptBundle.Transforms.Clear();
개인적으로 모든 스크립트를 단일 파일로 묶고 싶지만 디버깅 단계에서 가독성이 필요하다는 것을 개인적으로 알았습니다.
답변
나는 이러한 제안을 많이 시도했지만 작동하지 않는 것 같습니다. 나는 이것이 내 실수라는 것을 알기 위해 꽤 많은 시간을 낭비했습니다.
@Scripts.Render("/bundles/foundation")
내가 시도한 것이 무엇이든 항상 자바 스크립트를 축소하고 번들로 묶었습니다. 대신, 나는 이것을 사용해야했다 :
@Scripts.Render("~/bundles/foundation")
여분의 ‘~’가 해냈습니다. 한 번만 다시 제거하여 실제로 있는지 확인했습니다. 내가 바라던 시간에 적어도 한 사람을 구할 수 있었으면 좋겠다.
답변
여러 답변을 결합하면 ASP.NET MVC 4에서 작동합니다.
bundles.Add(new ScriptBundle("~/Scripts/Common/js")
.Include("~/Scripts/jquery-1.8.3.js")
.Include("~/Scripts/zizhujy.com.js")
.Include("~/Scripts/Globalize.js")
.Include("~/Scripts/common.js")
.Include("~/Scripts/requireLite/requireLite.js"));
bundles.Add(new StyleBundle("~/Content/appLayoutStyles")
.Include("~/Content/AppLayout.css"));
bundles.Add(new StyleBundle("~/Content/css/App/FunGrapherStyles")
.Include("~/Content/css/Apps/FunGrapher.css")
.Include("~/Content/css/tables.css"));
#if DEBUG
foreach (var bundle in BundleTable.Bundles)
{
bundle.Transforms.Clear();
}
#endif
답변
축소 (및 기타 기능)를 수동으로 제어하는 간단한 방법도 있습니다. 다음 과 같이 사용하는 새로운 CssMinify () 변환기입니다 .
// this is in case when BundleTable.EnableOptimizations = false;
var myBundle = new StyleBundle("~/Content/themes/base/css")
.Include("~/Content/themes/base/jquery.ui.core.css" /* , ... and so on */);
myBundle.Transforms.Add(new CssMinify());
bundles.Add(myBundle);
// or you can remove that transformer in opposite situation
myBundle.Transforms.Clear();
번들 일부 특수 부분을 축소하기를 원할 때 편리합니다. 예를 들어, 과도한 브라우저 요청을 많이받는 표준 (jQuery) 스타일을 사용하고 있지만 자신의 스타일 시트를 단순화하지 않으려 고합니다. (자바 스크립트와 동일).