Как включить несколько файлов Javascript в .NET (как они делают в rails) - PullRequest
8 голосов
/ 19 ноября 2008

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

<%= 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>

Существуют ли библиотеки для сжатия, gzip и объединения нескольких js-файлов? Как насчет файлов CSS?

Ответы [ 9 ]

8 голосов
/ 19 ноября 2008

Вы можете использовать элемент управления 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>

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

6 голосов
/ 19 ноября 2008

Также посмотрите эту статью на codeproject:
http://www.codeproject.com/KB/aspnet/HttpCombine.aspx

4 голосов
/ 19 мая 2010

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

3 голосов
/ 19 ноября 2008
<%= javascript_include_tag "all_min" %>

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

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

1 голос
/ 12 мая 2009

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

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

1 голос
/ 19 ноября 2008

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

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

0 голосов
/ 30 июня 2010

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

Grz, Kris.

0 голосов
/ 19 мая 2010

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

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

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

Мой совет:

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

0 голосов
/ 19 апреля 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...