Отключите пакетирование / минификацию при отладке в WebForms
Я хочу иметь возможность минимизировать / связать мои файлы javascript в производственной среде, при этом они не должны быть объединены / разделены при локальной отладке; однако сайт WebForms по умолчанию в VS2012 не позволяет этого сделать.
Шаги, чтобы воспроизвести мою проблему:
- Создайте новое приложение ASP.NET Web Forms (в моем случае C#)
- Запустите без отладки и просмотра ресурсов в браузере
- Обратите внимание на незавершенные файлы 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:
Этот сайт (который я понимаю, для 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);