Путь определения скрипта не используется

#c# #asp.net #webpack #webforms #bundling-and-minification

#c# #asp.net #webpack #веб-формы #объединение и минимизация

Вопрос:

Я следил за настройкой Webpack Сесила Филлипа в ASP.NET Веб-формы для ознакомления с утилитой Webpack. Я прошел большую часть пути, но у меня возникли проблемы с разделом ближе к концу (регистрация в ScriptManager).

Я добавил a ScriptResourceDefinition с Path помощью и DebugPath set для уменьшенной и неминифицированной версий вывода Webpack соответственно. Когда я загружаю страницу в отладочной сборке, я получаю ожидаемый DebugPath сценарий. Однако, когда я загружаю его в сборку релиза, а не ожидаемый Path сценарий, я снова получаю DebugPath . Есть идеи, почему это так, и как я могу получить правильное Path ?

Ответ №1:

Нашел это. Оказывается, я сделал несколько ложных предположений о том, как ScriptManager это работает. Вот мой ход мыслей —

  • Исследовал определение скрипта.Путь отладки:

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

  • Посмотрел ссылку «См. Также» на отладку и трассировку ASP.NET Обзор приложений AJAX, ссылка на который приведена внизу:

    При развертывании выпускной версии приложения WebForms, использующего Microsoft Ajax, установите для приложения режим выпуска. Это гарантирует, что ASP.NET использует оптимизированную для производительности версию выпуска библиотек Microsoft Ajax. Если вы создали версии для отладки и выпуска пользовательских файлов сценариев и ресурсов сценариев, ASP.NET также использует версии выпуска. Чтобы перевести приложение в режим выпуска, выполните следующие действия:

    • В файле Web.config, если элемент компиляции содержит атрибут debug, убедитесь, что для атрибута debug установлено значение false.

    • Убедитесь, что для любой веб-страницы, содержащей элемент управления ScriptManager, для свойства ScriptMode установлено значение Release.

  • Посмотрел дальше в ScriptManager.ScriptMode:

    Свойство ScriptMode указывает, должен ли элемент управления ScriptManager отображать отладочные или выпускные версии клиентских библиотек сценариев. Это значение может быть заменено значениями, которые заданы в файле конфигурации и в директиве страницы ..
    ..
    [По умолчанию] Отладочные версии клиентских библиотек сценариев используются на веб-странице, когда для атрибута retail элемента конфигурации развертывания установлено значение false. В противном случае используются версии выпуска клиентских библиотек сценариев.

Чтобы проверить это, я попробовал установить ScriptMode Release значение, и он загрузил правильный файл.