Как отключить минификацию Javascript / CSS в бета-версии ASP.NET MVC 4

StackOverflow https://stackoverflow.com/questions/9373071

Вопрос

Я просто пробую использовать ASP.NET MVC 4, но не могу понять, как отключить функцию минимизации Javascript / CSS.Особенно для среды разработки это очень поможет при отладке.Я бы предположил, что это будет переключатель в web.config, но поскольку ASP.NET MVC 4 все еще находится в стадии бета-тестирования, на данный момент действительно мало информации.Был бы признателен, если бы кто-нибудь мог помочь или указать на нужные сообщения в блоге и т. Д.

Это было полезно?

Решение

В Global.asax.cs

родовое слово

Другие советы

Другой вариант - создать помощник HTML, который можно использовать для создания сценария и тегов ссылок.Вот что я реализовал для Javascript, что также можно сделать для CSS:

родовое слово

Теперь все, что вам нужно сделать, это вызвать его в вашем представлении:

родовое слово

И он будет отображать сценарии как отдельные ссылки или использовать новую функцию связывания / минификации в зависимости от того, какие настройки отладки указаны в вашем web.config.Я использовал часть кода из http://codecutout.com/resource-minify-bundling какссылка при создании моего помощника, если вы хотите увидеть еще несколько примеров.Их помощник написан немного лучше, выдает исключения при предоставлении недопустимых аргументов и т. Д. Я просто еще не успел очистить свой.

Вы можете зарегистрировать свои собственные пакеты в Global.asax и использовать класс NoTransform, если вы не хотите, чтобы контент был минимизирован.

Лично я вообще не хочу, чтобы мой скрипт трансформировался.Я просто создаю два каталога сценариев.Один с версиями сценария отладки, а другой - с первоначально загруженными минимизированными версиями.

Стандартный минификатор MVC 4 (JsMinify) ломает jQuery 1.7.1 для Opera, поэтому я не хочу его использовать.Я просто поместил следующие строки в свой метод Global.asax : Application_Start():

родовое слово

Имея это место, я могу просто добавить одну из двух строк в свой код общего кода:

родовое слово

Конечно, мы могли бы сделать это немного веселее.Мы могли бы сгенерировать только один пакет и в зависимости от типа сборки выбрать, какие файлы включить.

После вызова EnableDefaultBundles() в Global.asax вы можете сделать это ...

родовое слово

Неприятно (изменение состояния, установленного системой), но в нем намного меньше кода, чем во всех других предложениях, все же позволяет использовать стандартное поведение объединения и не требует каких-либо изменений в ваших представлениях.

В более новых версиях ASP.NET MVC просто добавьте

родовое слово

сразу после

родовое слово

вы можете отключить его из конфигурации:

родовое слово

http://www.asp.net/mvc/учебники / mvc-4 / bundling-and-minification

Думаю, было бы правильно, если такая функция будет доступна «из коробки».

Я разместил отзыв на UserVoice.com: http://aspnet.uservoice.com/forums/41201-asp-net-mvc/suggestions/2702000-improve-system-web-optimization-bundle

Дайте ему свои «голоса».

Вместо замены экземпляров JsMinify и CssMinify можно использовать интерфейсы. Этот параметр был недоступен в более ранних версиях, поскольку второй параметр конструктора был типом, а не интерфейсом.

родовое слово

Возможно, стоит также отметить скрипты, которые поставляются с минимизированными и неминифицированными версиями, напримерjQuery, можно использовать вспомогательный метод, чтобы при желании исключить ".min" для сборок DEBUG, чтобы облегчить отладку:

родовое слово

Попробуйте новое расширение для System.Web.Optimization - Bundle Transformer .В Bundle Transformer реализован ряд возможностей для упрощения отладки (см. документацию ).

Другая альтернатива (протестирована с v1.1.0.0 и MVC5):

родовое слово
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top