Ошибка режима отладки Microsoft ASP.NET Web Optimization Framework 1.0.0

У меня два вопроса, один про баг, второй про cdn

ВОПРОС 1: (ОШИБКА)

Я только что добавил новый пакет NuGet: Microsoft ASP.NET Web Optimization Framework 1.0.0. Я использую ASP.NET MVC 3, и все работает, за исключением одной серьезной ошибки.

Если я использую debug="true" в web.config, теги скрипта никогда не выводятся. Я проверил источник представления, и для этого пакета вообще нет тегов.

Если я устанавливаю debug="false", я получаю тег скрипта, указывающий на мой файл минимизации.

*Это ошибка? Кто-нибудь еще испытал это? *

В качестве обходного пути, чтобы я мог хотя бы отлаживать свое приложение, я принудительно включил оптимизацию независимо от того, нахожусь ли я в режиме отладки или нет BundleTable.EnableOptimizations = true;

ВОПРОС 2: (CDN)

Также у меня есть еще один вопрос о поддержке CDN:

 bundles.Add(new ScriptBundle("~/bundles/jquery", 
                jqueryCdnPath).Include(
                 "~/Scripts/jquery-{version}.js"));

Если я хочу добавить еще один скрипт с поддержкой CDN, то мне придется добавить еще один бандл, поэтому если UseCdn="false", то он попытается загрузить 2 скрипта по отдельности, то есть 2 запроса. Есть ли способ обеспечить поддержку CDN для нескольких скриптов, чтобы он объединял их в 1 запрос, если UseCdn="false"?

Что-то вроде этого:

bundles.Add(new ScriptBundle("~/bundles/multiple").Include(
                "~/Scripts/jquery-{version}.js", jqueryCdnPath,
                "~/Scripts/jquery-ui-{version}.js", jqueryUICdnPath,
));

С уважением, DotnetShadow


person DotnetShadow    schedule 17.08.2012    source источник
comment
Я уверен, что вы уже знакомы с MVC 3 и веб-оптимизацией, но если это поможет, я написал сообщение в блоге, демонстрирующее, как начать работу с этим: icanmakethiswork.blogspot.co.uk/2012/10/   -  person John Reilly    schedule 05.10.2012


Ответы (1)


Не могли бы вы рассказать о том, что не работает в вашем приложении MVC3, например, как вы используете методы Scripts/Styles.Render?

Что касается № 2, в настоящее время поддержка CDN предоставляется только для каждого пакета. Таким образом, вы не сможете выполнить условную связку, которую хотите, и использовать CDN (если у вас нет доступа к CDN, на которую вы можете загружать новый контент, тогда вы можете просто загрузить свою связку в CDN)

person Hao Kung    schedule 17.08.2012
comment
Если я установил debug=true в web.config, теги скрипта не выводятся, т. е. нет ‹script type=text/javascript src=jquery.js›‹/script› Вместо этого в источнике, где должен быть приведенный выше скрипт, он пуст. Я использую @Scripts.Render(~/Scripts/jsminify), и мой пакет: // Пользовательские пакеты пакетов JS.Add(new ScriptBundle(~/Scripts/jsminify).Include( ~/Scripts/jquery-{версия} .min.js, ~/Scripts/jquery-ui-{версия}.custom.min.js )); - person DotnetShadow; 18.08.2012
comment
Ах, так соглашение по умолчанию будет игнорировать *.min.js в режиме отладки, так как это минифицированные файлы. Вы можете очистить список игнорирования, но, вероятно, проще всего просто переименовать файлы, чтобы они не были .min.js. - person Hao Kung; 20.08.2012
comment
Я не думаю, что это вообще должно работать, я просто привел тривиальный пример, но я уверен, что если бы у меня были файлы, отличные от .min, произошло бы то же самое. Я проверю это позже. Есть ли какая-либо документация, показывающая, что она будет игнорировать файлы .min.js в режиме отладки? - person DotnetShadow; 21.08.2012
comment
Ну, я написал эту функцию, поэтому я почти уверен, что она игнорирует *.min.js в режиме отладки :) Лучшие документы в настоящее время находятся здесь: asp.net/mvc/tutorials/mvc-4/bundling-and-minification - person Hao Kung; 21.08.2012
comment
Думаю, я думал, что правило должно быть таким: если debug=true, не делать минимизацию, но, по крайней мере, выводить файлы, перечисленные в комплекте. Я имею в виду, что это будет сбивать с толку, если у вас есть смесь мини-файлов и не минимальных файлов, и вдруг в режиме отладки некоторые сценарии будут выводиться, а другие - нет. Спасибо за ваше время и усилия - person DotnetShadow; 22.08.2012
comment
Спасибо, что указали мне на документы, я думаю, это проясняет ситуацию: выбор файла «.min» для выпуска, когда существуют «FileX.min.js» и «FileX.js». Выбор версии, отличной от «.min», для отладки. Игнорирование файлов «-vsdoc» (например, jquery-1.6.2-vsdoc.js), которые используются только IntelliSense. Я предполагаю, что случай, который я делаю, - это когда у нас нет как минимального, так и не минимального файла для одного сценария, является ли правило, которое просто игнорирует этот файл? - person DotnetShadow; 22.08.2012
comment
Да, в настоящее время это поведение по умолчанию, оно всегда будет игнорировать файлы .min, когда отладка = истина. Многие люди столкнулись с этой проблемой, поэтому мы ищем способы сделать эту проблему менее болезненной... - person Hao Kung; 22.08.2012
comment
@HaoKung игнорируются ли cdns, если для него установлено значение debug=true? потому что все мои ссылки cdn не находятся в макете. - person NinjaOnSafari; 08.06.2015