Объединение CSS и JS в главных страницах и просмотр страниц с помощью SquishIt - PullRequest
4 голосов
/ 02 июля 2010

Как вы реализуете SquishIt , чтобы связать Css / Js через View Pages и визуализировать его на главной странице?Я думал, что мог бы использовать ContentPlaceHolder над частью Render, но, кажется, есть какое-то странное поведение, когда он иногда добавляет 3 файла (1 на странице просмотра и 2 на главной странице), но в других случаях игнорирует файл, добавленный из представленияPage.

Index.aspx

<asp:Content ContentPlaceHolderID="CssFiles" runat="server">
    <% CssHelper.Add("home.css"); %>
</asp:Content>

Site.master

<asp:ContentPlaceHolder ID="CssFiles" runat="server" />
<% CssHelper.Add("reset.css"); %>
<% CssHelper.Add("master.css"); %>
<%=CssHelper.Render() %>

Мое текущее решение - статическоеобертка вокруг статического класса Bundle SquishIt, который хранит BundleBuilder в HttpContext.Current.Items.

Мне интересно, если это было сделано успешно и как это так.

Ответы [ 2 ]

12 голосов
/ 04 августа 2010

Я думаю, что вы можете немного упустить момент объединения CSS и Javascript.Если вы собираетесь добавлять файлы css или js в каждом представлении в сочетании с файлами главной страницы, то вы создаете тонну небольших пакетов, которые ваш пользователь должен загружать каждый раз.

Если выне иметь тонну (и я имею в виду ТОННУ) Javascript и Css, тогда вам лучше объединить ВСЕ ваши css и javascript в один пакет.Таким образом, пользователь получает возможность загрузить его в первый раз, а затем он кэшируется.

Если у вас есть TON css и javascript, используйте функцию именованных комплектов и создайте комплекты для разных разделов своего сайта,Но суть в том, что вы хотите минимизировать количество создаваемых пакетов, чтобы пользователю не приходилось загружать файлы.

Единственное исключение из этого - мобильные браузеры, в которых у них есть определенныеограничения размера кэширования.

1 голос
/ 06 августа 2010

Вы можете прыгнуть с корабля и попробовать Chirpy: http://chirpy.codeplex.com/

Или вы можете изменить подход ZController, чтобы удовлетворить ваши потребности: http://www.weirdlover.com/2010/05/11/more-better-harder-zippy-cache-controller-in-asp-net-mvc/

Я согласен с Джастином, хотя (и ЛЮБОВЬ SquishIt как есть).Вам, вероятно, лучше создавать меньше больших пакетов.

...