ruby-on-rails-4 - 有没有办法阻止 Rails 在生产中预编译 Assets ?

标签 ruby-on-rails-4 amazon-ec2 deployment capistrano3

我的项目中有很多 Assets 。服务器中的预编译任务非常慢并且耗尽主机(CPU利用率100%,平均延迟很高)。

我的想法是预编译本地主机中的所有 Assets 并将所有已预编译的文件发送到 GIT(主)。

在部署操作 (cap production deploy) 中,避免预编译任务,并在服务器中阻止任何预编译任务。

服务器使用通过 capistrano 发送的已预编译文件(可在 GIT 中获取)。

这可能吗?如果是,怎么办? 如果没有,还有另一种解决方案可以避免服务器预编译 Assets 吗?

下面是我的配置:

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 }

配置/环境/生产.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

环境信息

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

如果您需要更多信息,请在评论中告诉我。

最佳答案

简短回答:

替换

require 'capistrano/rails'

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

为什么有效:

当您需要 capistrano/rails 时,您实际上包含以下内容 ( source ):

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

每一个都可以单独包含以获得这些功能。根据文档:https://github.com/capistrano/rails#usage

关于ruby-on-rails-4 - 有没有办法阻止 Rails 在生产中预编译 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44998095/

相关文章:

Oracle WebLogic 12c 部署计划存档?

ruby-on-rails - Rails 4 找不到文件 'angular-rails-templates'

json - 是否可以检测格式错误的 JSON 字符串中的错误引号,然后将字符串正确解析为 JSON?

javascript - rails 4 : change boolean value with ajax remotely

amazon-web-services - 云形成 : Unable to access the EC2 instance created using CloudFomation through public DNS

asp.net - 我可以在 IIS 中自动创建 .NET Web 应用程序吗?

ruby-on-rails - 根据上下文自定义验证错误消息

amazon-web-services - AWS : dynamically allocate & associate new IP addresses to EC2 instance?

amazon-ec2 - Grep Amazon EC2 免费套餐符合条件的图像

ruby-on-rails - 基于来源的条件 .gitignore