Поиск…


Вступление

Конвейент ресурсов обеспечивает структуру для конкатенации и минимизации или сжатия ресурсов JavaScript и CSS. Он также добавляет возможность писать эти активы на других языках и предварительных процессорах, таких как CoffeeScript, Sass и ERB. Это позволяет автоматически использовать активы в вашем приложении вместе с активами других драгоценных камней. Например, jquery-rails включает в себя копию jquery.js и включает функции AJAX в Rails.

Рейк-задачи

По умолчанию sprockets-rails поставляется со следующими рейк-задачами:

  • assets:clean[keep] : удалить старые скомпилированные активы
  • assets:clobber : удалить скомпилированные активы
  • assets:environment : загрузить среду компиляции ресурсов
  • assets:precompile : Скомпилировать все активы, названные в config.assets.precompile

Манифестные файлы и директивы

В assets initalizer ( config/initializers/assets.rb ) несколько файлов явно определен прекомпилировать.

# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )

В этом примере application.coffee и application.scss называются так называемыми файлами манифеста. Эти файлы должны использоваться для включения других ресурсов JavaScript или CSS. Доступны следующие команды:

  • require <path> : require директивных функций , аналогичных рубин собственного require . Он предоставляет способ объявить зависимость от файла в вашем пути и гарантирует, что он будет загружен только один раз перед исходным файлом.
  • require_directory <path> : требует наличия всех файлов внутри одного каталога. Он похож на path/* поскольку он не соответствует вложенным каталогам.
  • require_tree <path> : требует наличия всех вложенных файлов в каталоге. Его глобальным эквивалентом является path/**/* .
  • require_self : заставляет тело текущего файла , который будет вставлен перед любой последующий require директивы. Полезно в CSS-файлах, где общий индексный файл содержит глобальные стили, которые необходимо определить до загрузки других зависимостей.
  • stub <path> : удалить файл из включенного
  • depend_on <path> : позволяет указать зависимость от файла без его включения. Это используется для кеширования. Любые изменения, внесенные в файл зависимостей, аннулируют кеш исходного файла.

Файл application.scss может выглядеть так:

/*
 *= require bootstrap
 *= require_directory .
 *= require_self
 */

Другим примером является файл application.coffee . Здесь с включением jquery и Turbolinks :

#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .

Если вы не используете CoffeeScript, но обычный JavaScript, синтаксис будет выглядеть так:

//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .

Основное использование

Существует два основных способа использования конвейера активов:

  1. При запуске сервера в режиме разработки он автоматически обрабатывает и подготавливает ваши активы «на лету».

  2. В режиме производства вы, вероятно, будете использовать его для предварительной обработки, модификации и сжатия и компиляции ваших активов. Вы можете сделать это, выполнив следующую команду:

    bundle exec rake assets:precompile



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow