Как включить несколько файлов Javascript в .NET (как в рельсах)

Я завидую ребятам из рельсов. Они могут это сделать:

<%= javascript_include_tag "all_min" %>

... и я застрял на этом:

<script src = "/public/javascript/jquery/jquery.js" type = "text/javascript"></script>
<script src = "/public/javascript/jquery/jquery.tablesorter.js" type = "text/javascript"></script>
<script src = "/public/javascript/jquery/jquery.tablehover.pack.js" type = "text/javascript"></script>
<script src = "/public/javascript/jquery/jquery.validate.js" type = "text/javascript"></script>
<script src = "/public/javascript/jquery/jquery.form.js" type = "text/javascript"></script>
<script src = "/public/javascript/jquery/application.js" type = "text/javascript"></script>

Есть ли библиотеки для сжатия, сжатия и объединения нескольких файлов js? Как насчет файлов CSS?

Также ознакомьтесь с этой статьей о codeproject: <codeproject.com/KB/aspnet/HttpCombine.aspx>

seanb 19.11.2008 01:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
8
1
4 786
8

Ответы 8

Вы можете сделать это с помощью обработчика HTTP. Посмотрите это сообщение в блоге Мэдса Кристенсена:

Объедините несколько таблиц стилей во время выполнения

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

Joel Coehoorn 19.11.2008 01:21

Это полностью отличается от вопроса OP. В статье говорится об объединении нескольких запросов в один во время выполнения, но вы все равно должны перечислить их каждый отдельно.

Adam Lassek 19.11.2008 01:22

Вы можете использовать элемент управления ScriptManager / ScriptManagerProxy и определить сценарии в разделе / ​​свойстве CompositeScript. См. Ссылка MSDN.

<asp:ScriptManager runat = "server">
    <CompositeScript>
        <Scripts>
            <asp:ScriptReference Path = "~/public/javascript/jquery/jquery.js" />
            <asp:ScriptReference Path = "~/public/javascript/jquery/jquery.tablesorter.js" />
            <asp:ScriptReference Path = "~/public/javascript/jquery/jquery.tablehover.pack.js" />
            <asp:ScriptReference Path = "~/public/javascript/jquery/jquery.validate.js" />
            <asp:ScriptReference Path = "~/public/javascript/jquery/jquery.form.js" />
            <asp:ScriptReference Path = "~/public/javascript/jquery/application.js" />
        </Scripts>
    </CompositeScript>
</asp:ScriptManager>

Он не обязательно очищает разметку, но объединяет их вместе.

<%= javascript_include_tag "all_min" %>

Это действительно имеет всю семантику классического вызова функции asp, даже если она действительно рубиновая. Фактически, не зная ни одного рубина, я все еще могу быть довольно уверенным в предположении, что этот является просто функция, а «all_min» относится к имени папки, которое передается в качестве аргумента.

Поскольку пчелиные укусы <%= %> - это всего лишь сокращение от Response.Write в классическом ASP, мы можем сделать вывод, что вы должны иметь возможность создать свою собственную функцию, которая, по сути, делает то же самое и возвращает строку с соответствующими включениями.

Вы правы, в Ruby вам не нужны скобки для передачи значения функции.

Adam Lassek 19.11.2008 18:05

@labilbe: Я предполагаю, что в этом случае вы следовали соглашению об именах, чтобы убедиться, что они собраны в правильном порядке. Я сомневаюсь, что функция ruby ​​достаточно умен, чтобы проверять зависимости.

Joel Coehoorn 22.11.2008 00:52

ScriptManager находится под лицензией BSD, и это мне не нравится :(. Вы можете увидеть очень хорошую альтернативу, как это реализовано в подходе KiGG: KiGG

Идея заключается в том, что элемент управления позволяет вам объединять файлы js из веб-конфигурации, разделяя их на категории (вы указываете их имена) довольно просто yaeh. удачи.

Многие решения делают это с помощью обработчика http, который динамически создает сжатый файл js или css для каждой страницы, что не является хорошей идеей. Лучше объединить все файлы js и css ваших сайтов в один файл и лучше его обслуживать. Таким образом, браузер загружает его один раз и кеширует. Все дальнейшие запросы просто загружаются из кеша. Динамически сжатые файлы js и css создают файл на каждой странице. Таким образом, вы можете повторно использовать одни и те же файлы css и js для каждой страницы.

Затем вы можете позволить веб-серверу обслуживать измельченный файл css / js. Самый веб-сервер. IIS реализует кэширование в режиме ядра, что является самым быстрым способом обслуживания любого статического файла.

Если вам нужны производительные, масштабируемые решения, работающие в веб-фермах, обратите внимание:

http://code.google.com/p/talifun-web/wiki/CrusherModule

Это вспомогательный метод в рельсах.

передача: все будут включать библиотеки прототипов по умолчанию.

ASP.net MVC пытался скопировать рельсы, но у вас никогда не получалось правильно понять внутреннюю астетику.

Мой совет:

Вместо того, чтобы копировать все хорошее из открытого исходного кода, просто используйте реальный материал, то есть рельсы

Combres выполняет объединение, управление версиями, минификацию и кэширование ресурсов JavaScript и CSS. Он очень настраиваемый и производительный.

Я недавно нашел этот инструмент SquishIt.

Grz, Крис.

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