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

StackOverflow https://stackoverflow.com/questions/3167096

Вопрос

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

Индекс.aspx

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

Сайт.мастер

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

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

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

Это было полезно?

Решение

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

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

Если у вас есть ТОННА 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, как есть). Вам, вероятно, лучше создавать меньше, большие пучки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top