1

Я знаю, что в Интернете есть много подобных вопросов, как это в Интернете, но после поиска этих последних двух дней я не получил ни одного рабочего решения. Некоторые потоки устарели, другие решения не работают, другие слишком сложны для управления, поэтому ... Да, еще один вопрос о файлах resources.axd в проектах asp.net.Объединение веб-сервера контролирует ресурсы веб-и скриптов (файлы axd)

Я начинаю создавать набор серверных элементов управления и встраивать некоторые ресурсы. После создания элементов управления и перетаскивания их на страницы каждый отдельный ресурс запрашивается браузером в виде сценария .axd. Я понимаю ту часть, где ScriptManager управляет этими сценариями, и они не готовы использовать, например, в Bundles в некотором виде .Include ("*. Axd").

  • Я попробовал некоторые из пакетов скомбинировать/преуменьшать/компресс/GZIP/icecreamOnTop там, но не может управлять ни один из них работать.

  • Я пробовал подход StriptManager CompositeScript, и ScriptResources.axd действительно объединены, ответ успешный (код 200), но в конце сценарии не работают. Пример: я включил jQuery lib в этот составной скрипт, а затем попытался использовать его на странице - не работал. Должен сказать, что я не ссылался() на составной скрипт, потому что я не понимал, как это сделать. Если я установил путь, тогда был возвращен 404 (найденный потоки ограничения 1024 байта и т. Д.), И все запросы к WebResources.axd все равно останутся.

  • Я бы предпочел не писать HttpHandler сам.

  • Также попытался загрузить AjaxToolkit и попробовал ToolkitScriptManager, который сочетает в себе скрипты, но добавил ~ 4 секунды к загрузке моей страницы. Нет, спасибо.

Мой вопрос: каков нынешний подход к этому вопросу в .net 4.5?

У меня будет много ресурсов и вы хотите их комбинировать. Все js и css-файлы в конечном проекте веб-сайта включены в комплект, но как «связывать» файлы axd?

Here's a little example, который выполнит следующие запросы:

Click here to view image

Я знаю, я могу установить AjaxFrameworkMode Отключено и буду иметь только 2 первые запросы WebResources.axd в этом примере, но что, когда я есть 10 css-файлов, встроенных в мои элементы управления?

Любое рабочее решение было бы высоко оценено.

Большое спасибо

ответ

0

мне удалось реализовать то, что подходит мое дело. Больше работы, чем правильное сочетание решения, но работает, и на данный момент это достаточно хорошо.

  • Все мои элементы управления расширяют базовый класс, который имеет свойство ProcessResources. По умолчанию для этого свойства установлено значение true. Это означает, что ресурсы JS и CSS будут зарегистрированы, и каждый элемент управления должен работать как автономный (будут генерироваться ресурсы axd). Если установлено значение false, ресурс не зарегистрирован и не генерируются файлы axd.

  • Базовый класс также имеет статический метод, который получает путь назначения в качестве параметра и копирует все ресурсы JS и CSS в эту папку (если они не существуют или были изменены). Этот метод возвращает коллекцию всех необходимых ресурсов для работы элемента управления.

Таким образом, на Application_Start, я могу сделать что-то вроде:

myJsBundle.Inlude (ServerControlA.GetResources ("~/ExternalResources", RESOURCES.JAVASCRIPT));

Тогда нужно установить флаг ProcessResources в значение false (каждый элемент управления или web.config). Все ресурсы теперь объединены и не генерируются файлы axd.

Смежные вопросы