从VS 2013.2RTM Pro,MVC 5.1应用程序运行调试。
如果编译模式设置为debug =" true"它应该禁用捆绑和缩小,但它不会。当我在页面上检查View源时,样式和脚本被捆绑在一起
<script src="/bundles/modernizr?v=K-FFpFNtIXjnmlQamnX3qHX_A5r984M2xbAgcuEm38iv41"></script>
如果我在BundleConfig.cs中设置BundleTable.EnableOptimizations = false;
,它会禁用捆绑和缩小,但这不是它应该如何工作。我不应该记得切换EnableOptimizations
设置!
VS 2012 MVC 4应用程序正常运行。
这是一个MVC 5.1错误吗?有没有其他人有这个问题?有没有办法让调试禁用捆绑和缩小?
web.config:
<system.web>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" useFullyQualifiedRedirectUrl="true" maxRequestLength="100000" enableVersionHeader="false" />
<sessionState cookieName="My_SessionId" />
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
_Layout.cshtml:
标题
@Styles.Render("~/Content/css") @Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/modernizr")
身体末端
@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryui") @Scripts.Render("~/bundles/jqueryval")
答案 0 :(得分:0)
我在发布版本中也看到了这一点。为了解决这个问题,我使用条件标志来达到同样的效果。
BundleTable.EnableOptimizations = true;
#if DEBUG
BundleTable.EnableOptimizations = false;
#endif
答案 1 :(得分:0)
您可以查看这篇文章 http://codemares.blogspot.com.eg/2012/03/disable-minification-with-mvc-4-bundles.html
或者你可以使用这个简单的实现
public class NoMinifyTransform : JsMinify
{
public override void Process(BundleContext context, BundleResponse response)
{
context.EnableOptimizations = false;
var enableInstrumentation = context.EnableInstrumentation;
context.EnableInstrumentation = true;
base.Process(context, response);
context.EnableInstrumentation = enableInstrumentation;
}
}
然后在(App_Start)中定义脚本包时,可以像这样使用基本的Bundle类
IBundleTransform jsTransformer;
#if DEBUG
BundleTable.EnableOptimizations = false;
jsTransformer = new NoMinifyTransform();
#else
jstransformer = new JsMinify();
#endif
bundles.Add(new Bundle("~/TestBundle/alljs", jsTransformer)
.Include("~/Scripts/a.js")
.Include("~/Scripts/b.js")
.Include("~/Scripts/c.js"));