Is there a way to prevent rails to precompile assets on production?

放肆的年华 提交于 2019-12-31 05:02:06

问题


I have a lot of assets in my project. The precompile task in the server is very slow and exhaust the host (CPU utilization 100%, high average latency).

My idea is to precompile all assets in my localhost and send to GIT (master) all files already precompiled.

In the deploy action (cap production deploy), avoid the precompile task and in the server, prevent any precompile task.

The server uses the already precompiled files sended via capistrano, available in GIT.

Is it possible? If yes, how to do? If no, there's another solution to avoid server precomile assets?

Below my configs:

Gemfile

gem 'capistrano-rails', group: :development
gem 'capistrano-faster-assets', '~> 1.0', group: :development

Capfile

require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rails'
require 'capistrano/faster_assets'

# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

config/environments/production.rb

config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass
config.assets.compile = true
config.assets.digest = true
other assets configs in this file is commented

Environment info

OS: Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-48-generic x86_64)
ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
rails -v: 4.2.3
nginx -v: nginx/1.8.0
passenger -v: 5.0.10

If you need more information, tell me on the comments.


回答1:


Short answer:

Replace

require 'capistrano/rails'

with

require 'capistrano/rails/migrations'
require 'capistrano/bundler'

Why this works:

When you require capistrano/rails, you are really including the following (source):

require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

Each of these can be included separately to get just those pieces of functionality. Per the docs: https://github.com/capistrano/rails#usage



来源:https://stackoverflow.com/questions/44998095/is-there-a-way-to-prevent-rails-to-precompile-assets-on-production

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!