Запуск приложения ASP.NET MVC 4 в режиме выпуска не связывает и не изменяет js файлы
Когда я запускаю приложение ASP.NET MVC 4 в режиме выпуска, пакеты все равно выводят unminified и отдельные файлы js, вместо того, чтобы связывать и минимизировать его на меньшее количество связанных файлов JavaScript.
Любые идеи?
FYI, релиз config:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
Ответы
Ответ 1
Благодаря комментарию aleyush, что Web.release.config
используется только при публикации приложения, а не при его локальном использовании, я смог исправить его, добавив следующие строки в файл BundleConfig.cs
:
#if !DEBUG
BundleTable.EnableOptimizations = true;
#endif
Так как режим Debug будет определять константу DEBUG
, а в режиме деблокирования она не определена, эта строка будет выполняться только в режиме деблокирования. (вы можете проверить его, установив точку останова)
Ответ 2
-
Ничего не связывается или не минимизируется, если для файла debug установлено значение true в файле Web.config, чтобы вы могли легко отлаживать вывод.
-
Если вы хотите переопределить это, просто добавьте следующую строку кода в файл BundleConfig:
BundleTable.EnableOptimizations = true;
Ответ 3
Это сработало для меня
<system.web>
<compilation debug="false" />
</system.web>
Ответ 4
Мой пакет был слишком большой. Я должен был разбить его на более мелкие части, и он работал нормально. Может быть, какая-то переменная столкнулась с минимумом.
Поместите эту строку в конец вашего пакета, только для теста...
BundleTable.EnableOptimizations = true;
Если вы откроете миниатюрный файл, вы увидите что-то вроде этого.
/* Minification failed. Returning unminified contents.
(5079,1-2): run-time warning JS1195: Expected expression: .
(5080,18-19): run-time warning JS1004: Expected ';': :
(5084,18-19): run-time warning JS1004: Expected ';': :
(5091,18-19): run-time warning JS1004: Expected ';': :
(5095,20-21): run-time warning JS1197: Too many errors. The file might not be a JavaScript file: ;
.....
Разрушая вас, вы можете изолировать проблему.
Надеюсь, это может помочь кому-то.