предварительная компиляция производства конвейера ресурсов рельсов

У меня есть каталог projName/vendor/assets/bootstrap/css/ Я нахожусь в рабочем режиме. production.rb содержит: config.assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/ когда я запускаю rake assets:precompile я получаю projName/public/assets/css/ но хочу projName/public/assets/bootstrap/css/ я не понимаю почему там нет каталога bootstrap. На самом деле все каталоги верхнего уровня в разделе vendor/assets и app/assets отсутствуют в public assets/.


person user2379285    schedule 13.05.2013    source источник
comment
Что именно вы надеялись сопоставить с этим регулярным выражением?   -  person PinnyM    schedule 14.05.2013
comment
Вы пытаетесь включить начальную загрузку Twitter в свой css. Если это так, просто добавьте @import "bootstrap"; вверху файла scss, который используют ваши представления.   -  person halmeetdave    schedule 14.05.2013


Ответы (3)


Скомпилированные активы записываются в папку, указанную в config.assets.prefix. По умолчанию это каталог public/assets.

Чтобы понять это, вы должны сначала понять, что такое предварительная компиляция и что она делает. Позволь мне объяснить

Когда вы запускаете (задача rake)

rake assets:precompile

он создаст папку public внутри папки вашего приложения, в которой будут собраны все ваши манифесты активов (т.е. ваши application.css и application.js)

Как именно это происходит?? -> Rails поставляется в комплекте с задачей rake, которая скомпилирует все это. Эта задача rake показана выше.

Скомпилированные активы записываются в место, указанное в config.assets.prefix. По умолчанию это каталог public/assets.

Сопоставитель по умолчанию для компиляции файлов включает в себя application.js, application.css и все файлы, отличные от JS/CSS (это автоматически включает все ресурсы изображений) из папок app/assets, включая ваши драгоценные камни.

И это именно то, что означает это регулярное выражение (чтобы включить все в папку вашего приложения/активов), вы также можете указать его явно, как показано в ответе выше.

Надеюсь, это помогло.

Вот несколько ссылок для справки

http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets

http://dennisreimann.de/blog/precompiling-rails-assets-for-development/

person Nikhil Nanjappa    schedule 11.03.2014

Что означает это регулярное выражение? Если вы хотите предварительно скомпилировать все, попробуйте это.

config.assets.precompile = ['*.js', '*.css']
person tungsten_carbide    schedule 27.07.2013
comment
Включает ли это кофе, sass, sccs, slim, haml и т. д.? - person ahnbizcad; 04.09.2014

На самом деле, если вы хотите предварительно скомпилировать все, попробуйте следующее:

def precompile?(path)
  %w(app lib vendor).each do |asset_root|
    assets_path = Rails.root.join(asset_root, 'assets').to_path
    return true if path.starts_with?(assets_path)
  end
  false
end

# Precompile all assets under app/assets (unless they start with _)
Rails.application.config.assets.precompile << proc do |name, path|
  starts_with_underscore = name.split('/').last.starts_with?('_')
  unless starts_with_underscore
    path = Rails.application.assets.resolve(name).to_path unless path # Rails 4 passes path; Rails 3 doesn't
    precompile?(path)
  end
end

(На основе кода в Руководстве по Rails.)

person AlexChaffee    schedule 10.09.2014