Объединение CSS и JS на главных страницах и просмотр страниц с помощью SquishIt
-
02-10-2019 - |
Вопрос
Как вы реализуете 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, как есть). Вам, вероятно, лучше создавать меньше, большие пучки.