Rails 3.1 - как я могу сказать, что активы прекомпилируются на производстве? - PullRequest
4 голосов
/ 06 сентября 2011

Попытка освоить приложение для рельсов 3.1 ...

На основании прочитанного я поместил следующий код в файл deploy.rb:

before "deploy:symlink", "assets:precompile"

namespace :assets do
  desc "Compile assets"
  task :precompile, :roles => :app do
    run "cd #{release_path} && rake RAILS_ENV=#{rails_env} assets:precompile"
  end
end

Но, честно говоря, я не могу заметить никакой разницы с этим или без него. Я что-то упускаю здесь?

РЕДАКТИРОВАТЬ * нашел ответ:

http://spreecommerce.com/blog

Чтобы предварительно скомпилировать ресурсы для производства, вы обычно выполняете следующую задачу rake (на рабочем сервере).

$ bundle exec rake assets: precompile Это позволит записать все ресурсы в каталог public / assets, включив в имя файла отпечаток MD5 для дополнительных преимуществ кэширования.

ПРИМЕЧАНИЕ. При производстве все ссылки на ресурсы из представлений, использующих image_tag, asset_path, javascript_include_tag и т. Д., Автоматически включают этот отпечаток в имя файла, поэтому будет предоставлена ​​правильная версия.

1 Ответ

0 голосов
/ 19 января 2012

Конфигурирование необходимо выполнить, но оно должно быть правильно установлено по умолчанию. Зайдите в ваш config / application.rb и посмотрите, найдете ли вы это:

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end
...
config.assets.enabled = true

Вы также должны иметь их в файле production.rb:

# Compress JavaScripts and CSS
config.assets.compress = true

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false

Это должно быть установлено таким образом. Это так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...