开发者

Rails 3.1 - how can I tell if assets are precompiling on production?

Trying to get the hang of deploying a rails 3.1 App ...

Based on what I've read, I've put the following code in my 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

But to tell you the truth, I can't notice any difference with or without it. Is there something I'm missing here?

EDIT* found the answer:

http://spreecommerce.com/blog

To pre-compile assets for production you would normally execute the following rake task (on the production server).

$ bundle exec rake assets:precompile This would write all the assets to the public/assets directory while including an MD5 fingerprint in the filename for added caching benefits.

NOTE: In production all references to assets from views using image_tag, asset_path, javascri开发者_高级运维pt_include_tag, etc. will automatically include this fingerprint in the file name so the correct version will be served.


There is configuration to do, but it should be correctly set by default. Get in your config/application.rb and see if you find this:

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

You should also have those in your production.rb file:

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

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

This should be set that way. Is it?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜