Объединение CSS и JS в главных страницах и просмотр страниц с помощью SquishIt

Как вы реализуете SquishIt для связывания Css/J через 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 ответа

Решение

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

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

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

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

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

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

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

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