Отключите пакетирование / минификацию при отладке в WebForms

Я хочу иметь возможность минимизировать / связать мои файлы javascript в производственной среде, при этом они не должны быть объединены / разделены при локальной отладке; однако сайт WebForms по умолчанию в VS2012 не позволяет этого сделать.

Шаги, чтобы воспроизвести мою проблему:

  1. Создайте новое приложение ASP.NET Web Forms (в моем случае C#)
  2. Запустите без отладки и просмотра ресурсов в браузере
  3. Обратите внимание на незавершенные файлы jquery/modernizr, но связанные / минимизированные MsAjaxJS а также WebFormsJs

web.config, по умолчанию имеет:

<compilation debug="true" targetFramework="4.5">

И я даже пытался изменить Global.asax, явно сказав BundleTable не оптимизировать

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    BundleTable.EnableOptimizations = false;
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    AuthConfig.RegisterOpenAuth();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
}

Тем не менее, я до сих пор получаю неуправляемые файлы JavaScript:

Инструменты Chrome Dev (показ минифицированных / связанных файлов

Этот сайт (который я понимаю, для MVC) говорит мне, что либо debug="true" в web.config или BundleTable.EnableOptimizations = false; в Global.asax должен отключить функционал. И на этом сайте (который предназначен для веб- форм и связан с первого) не упоминается отключение его для отладки.

Как я могу (безошибочно) сказать, чтобы мой проект только сокращал / связывал, когда debug = "false"?

(Я использую ASP.NET 4.5)

РЕДАКТИРОВАТЬ:
Этот вопрос и этот вопрос похожи, но оба они предлагают только решение, используя Scripts.Render(), Есть ли способ сделать это с помощью шаблонного метода использования ScriptManager?

2 ответа

Добавьте следующий код в файл Global.asax.cs в методе Application_Start. Это прекрасно работает для меня.

#if DEBUG
       foreach (var bundle in BundleTable.Bundles)
       {
           bundle.Transforms.Clear();
       }
#endif

У меня была похожая проблема раньше. Я решил свою проблему, поставив этот код

BundleTable.EnableOptimizations = false;

после

BundleConfig.RegisterBundles(BundleTable.Bundles);
Другие вопросы по тегам