ASP.NET MVC 4在调试模式下捆绑js文件

Oxo*_*xon 6 asp.net-mvc asp.net-mvc-4

"问题在于,默认情况下,asp.net mvc不会在调试模式下捆绑css和js文件.但是我们的css和js文件正在捆绑在调试模式下."

出于某种原因,所有css和js文件都以调试模式捆绑在一起.它开始于几天前.我们有一个拥有多个开发人员的大型团队,很难找到过去几天发生了哪些变化,因为有多个变更提交到存储库.但是我没有在BundleConfig和Global.asax.cs中发现任何重大变化.

当应用程序在调试模式下运行时,BundleTable.EnableOptimizations返回false.

据我所知,当debug设置为true时,捆绑不会发生. <compilation debug="true" targetFramework="4.5">

到目前为止,我还没有在Google上发现过这个问题.这是一个非常独特的问题吗?

理想情况下,我想修复它而不是解决方法.找到原因是这里的实际问题.任何关于我应该开始寻找修复的指针都将不胜感激.谢谢.

编辑:我的问题与捆绑和缩小的ASP.NET MVC 4应用程序类似但不完全相同,为什么在调试模式下启用缩小? 有人请删除"这个问题可能已经有答案:"标签.在我的情况下,捆绑路径已经以"〜"开头

模板: @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/js")

捆绑配置: bundles.Add(new Bundle("~/Content/css").Include("~/Content/*.css")); bundles.Add(new Bundle("~/bundles/js").Include("~/Scripts/myproj.*"));

Gab*_*abe 8

尝试在全局中添加此项 Application_Start()

BundleTable.EnableOptimizations = false;
Run Code Online (Sandbox Code Playgroud)

所以...

protected void Application_Start()
{
     AreaRegistration.RegisterAllAreas();
     WebApiConfig.Register(GlobalConfiguration.Configuration);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     AuthConfig.RegisterAuth();

     BundleTable.EnableOptimizations = false;
}
Run Code Online (Sandbox Code Playgroud)

  • 每当我在立即窗口或监视窗口中检查它时,BundleTable.EnableOptimizations值都已为false. (2认同)

w0r*_*ven 2

专门尝试在 MVC 之外进行故障排除。

这个问题现在是否超出了您的整个团队或只是您的机器?如果是整个团队,至少您知道更改发生在提交周期的某个地方。

您重建了解决方案吗?清洁得当吗?您运行的是 IIS、IIS Express 还是 Cassini?您是否绝对确定您在调试器中运行的站点/构建未处于发布模式?您可能正在调试未通过构建管道修改的特定构建(失败的构建肯定属于此类别)。

我使用的是 VS 2010 和 MVC 4,默认情况下在调试模式下,我绝对没有看到捆绑。我不必明确设置任何内容。如果您有不同的看法,显然必须有某种原因来解释它,因为这不是正常行为。

我有一种感觉,你最好的方法是最难的:放松你的承诺。复制您的工作目录并恢复到发生此情况之前的某个时间。验证此构建中不会出现问题,不要只是假设。现在检查该时间点和现在之间的一半提交。再次测试。如果构建仍然良好,请将时间减少一半并重复。一旦遇到问题,您就知道引入该问题的提交介于您上一次“良好”提交和当前正在测试的提交之间。这种技术极大地简化了将问题隔离到特定提交的过程。我几乎从不一次提交一项,除非我完全不确定代码或者我已经清楚地知道它可能在哪里。