Я завидую ребятам из рельсов. Они могут это сделать:
<%= 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?





Вы можете сделать это с помощью обработчика HTTP. Посмотрите это сообщение в блоге Мэдса Кристенсена:
Объедините несколько таблиц стилей во время выполнения
Кажется излишним, когда все дело в упрощении. С другой стороны, я полагаю, ему нужно написать обработчик только один раз, и он может переносить его с сайта на сайт.
Это полностью отличается от вопроса OP. В статье говорится об объединении нескольких запросов в один во время выполнения, но вы все равно должны перечислить их каждый отдельно.
Вы можете использовать элемент управления 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 вам не нужны скобки для передачи значения функции.
@labilbe: Я предполагаю, что в этом случае вы следовали соглашению об именах, чтобы убедиться, что они собраны в правильном порядке. Я сомневаюсь, что функция ruby достаточно умен, чтобы проверять зависимости.
ScriptManager находится под лицензией BSD, и это мне не нравится :(. Вы можете увидеть очень хорошую альтернативу, как это реализовано в подходе KiGG: KiGG
Идея заключается в том, что элемент управления позволяет вам объединять файлы js из веб-конфигурации, разделяя их на категории (вы указываете их имена) довольно просто yaeh. удачи.
Многие решения делают это с помощью обработчика http, который динамически создает сжатый файл js или css для каждой страницы, что не является хорошей идеей. Лучше объединить все файлы js и css ваших сайтов в один файл и лучше его обслуживать. Таким образом, браузер загружает его один раз и кеширует. Все дальнейшие запросы просто загружаются из кеша. Динамически сжатые файлы js и css создают файл на каждой странице. Таким образом, вы можете повторно использовать одни и те же файлы css и js для каждой страницы.
Затем вы можете позволить веб-серверу обслуживать измельченный файл css / js. Самый веб-сервер. IIS реализует кэширование в режиме ядра, что является самым быстрым способом обслуживания любого статического файла.
Если вам нужны производительные, масштабируемые решения, работающие в веб-фермах, обратите внимание:
Это вспомогательный метод в рельсах.
передача: все будут включать библиотеки прототипов по умолчанию.
ASP.net MVC пытался скопировать рельсы, но у вас никогда не получалось правильно понять внутреннюю астетику.
Мой совет:
Вместо того, чтобы копировать все хорошее из открытого исходного кода, просто используйте реальный материал, то есть рельсы
Combres выполняет объединение, управление версиями, минификацию и кэширование ресурсов JavaScript и CSS. Он очень настраиваемый и производительный.
Я недавно нашел этот инструмент SquishIt.
Grz, Крис.
Также ознакомьтесь с этой статьей о codeproject: <codeproject.com/KB/aspnet/HttpCombine.aspx>