Привет, я автор AssetHat.Минификация и объединение являются одними из самых простых способов повышения производительности;Эти функции являются общими для Jammit, AssetHat и Rack-PageSpeed.Rails уже давно поддерживает конкатенацию (хотя это делается во время выполнения, а не во время развертывания), и неудивительно, что Rails 3.1 поддерживает как минификацию, так и конкатенацию во время развертывания.
Остальные функции - то, что делает каждыйиз этих управляющих активами интересно.Например, Jammit полезен, если вы хотите встроить изображения и файлы шрифтов прямо в таблицы стилей.rack-pagespeed также удобен, если вы хотите сохранить все свои оптимизации в совершенно отдельном слое.
Вставка ресурсов в CSS отлично подходит для статических страниц, где таблицы стилей меняются нечасто.Однако, если ваш сайт находится в активной разработке, и таблица стилей изменяется даже незначительно, браузер пользователя должен заново загрузить все это, включая встроенные изображения и шрифты, которые, вероятно, не изменились.Это зависит от характера вашего проекта.
Если ваши ресурсы слишком велики для встраивания или объединения, AssetHat помогает оптимизировать CDN и параллельную загрузку:
- Это дает большие преимущества CDN.будь то CDN Google , cdnjs (который использует серверы Amazon ) или другой CDN по вашему выбору.Например, просто добавьте
<%= include_js :jquery %>
в свой макет (и номер версии в файле конфигурации), чтобы загрузить jQuery из CDN Google.Если вы находитесь в режиме разработки и у вас есть локальная копия jQuery, она загружается вместо этого - просто в автономном режиме dev. - AssetHat может переписать URL-адреса изображений таблиц стилей, чтобы использовать вместо них ваш CDN .Это считывает ваши настройки
config.action_controller.asset_host
и выполняется во время развертывания.Ваш оригинальный CSS остается нетронутым. - Если у вас есть несколько файлов JS для загрузки, иногда быстрее загружать их параллельно, чем объединять их (то есть заставлять их загружать последовательно).Вы можете легко включить LABjs mode :
<%= include_js 'big-file-1', ..., 'big-file-n', :loader => :lab_js %>
.Если у вас нет копии LABjs локально или вы работаете, LABjs загружается с серверов Amazon через cdnjs.
Используя CDN, такие как Google или Amazon, ваши пользователи могут загружать большересурсы параллельно (так как существует больше имен хостов), обладают большей скоростью, а иногда даже не требуют загрузки ресурсов вообще (например, если они уже загрузили копию jQuery от Google через чужой сайт).
IЯ использовал AssetHat в Heroku, настроив мой скрипт развертывания на простой запуск rake asset_hat:minify
(для минимизации и объединения CSS / JS), зафиксируйте эти изменения в моем хранилище, а затем выполните фактическое развертывание.
В случае, если у вас нетВы уже видели это, возможно, вас заинтересует:
Если вам нужна помощь в настройке или у вас есть другие вопросыне стесняйтесь сообщать мнена GitHub ( rondevera ) или Twitter ( @ ronalddevera ).