ruby-on-rails - capistrano 3.0.1 在使用 capistrano/rails/assets 时不知道如何构建任务 'starting'

标签 ruby-on-rails ruby ruby-on-rails-3 capistrano asset-pipeline

尝试使用 Capistrano 3.0.1 进行部署时出现以下错误:

cap aborted!
Don't know how to build task 'starting'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-3.0.1/lib/capistrano/dsl/task_enhancements.rb:5:in `before'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-rails-1.1.0/lib/capistrano/tasks/assets.rake:9:in `block in <top (required)>'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-rails-1.1.0/lib/capistrano/tasks/assets.rake:8:in `<top (required)>'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-rails-1.1.0/lib/capistrano/rails/assets.rb:1:in `load'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-rails-1.1.0/lib/capistrano/rails/assets.rb:1:in `<top (required)>'
/Users/user/Documents/rails/shop/Capfile:18:in `require'
/Users/user/Documents/rails/shop/Capfile:18:in `<top (required)>'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-3.0.1/lib/capistrano/application.rb:22:in `load_rakefile'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-3.0.1/lib/capistrano/application.rb:12:in `run'
/Users/user/.rvm/gems/ruby-2.0.0-p353/gems/capistrano-3.0.1/bin/cap:3:in `<top (required)>'
/Users/user/.rvm/gems/ruby-2.0.0-p353/bin/cap:23:in `load'
/Users/user/.rvm/gems/ruby-2.0.0-p353/bin/cap:23:in `<main>'
/Users/user/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/Users/user/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)

这似乎是在我取消注释 Capfile 中用于加载 Assets 和执行迁移的 require 行时开始的:

  # Load DSL and Setup Up Stages
  require 'capistrano/setup'

  # Includes tasks from other gems included in your Gemfile
  #
  # require 'capistrano/rvm'
  # require 'capistrano/rbenv'
  # require 'capistrano/chruby'
  # require 'capistrano/bundler'
  require 'capistrano/rails/assets'
  require 'capistrano/rails/migrations'

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

并将 gem 添加到 Gemfile:

gem 'capistrano',  '~> 3.0.0'
gem 'capistrano-rails', '~> 1.1.0'

这就像所需的 Assets 在默认 capistrano 任务之前加载,因此它们失败,因为加载 starting 的时间尚未定义。我不确定如何解决这个问题,

有什么想法吗?

谢谢

最佳答案

“不知道如何构建任务”错误可能是由于 Capfile 中的“require”行错误的顺序引起的。

关于ruby-on-rails - capistrano 3.0.1 在使用 capistrano/rails/assets 时不知道如何构建任务 'starting',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20400451/

相关文章:

ruby - 我的代码中是否存在用于求解 Collat​​z 序列的无限循环?

ruby - 功能标志最佳实践 : condition inside or outside of a method?

ruby-on-rails - 如何找到 Rails 部分的文件名?

ruby-on-rails - friendly_id,播种数据库,未定义方法 'friendly_id'

ruby-on-rails - 在生产 Rails 应用程序中向大表添加索引然后迁移后会发生什么?

ruby - 如何在 vim 中启用 ruby​​ 方法可视化

javascript - Assets 管道中的路由助手

unit-testing - 干净地卸载 Rspec 并在 Rails 3.x 中使用 vanilla Unit::Test

ruby-on-rails - ActionController::UnfilteredParameters - 无法将未经允许的参数转换为散列 - Rails 5.1.6

ruby-on-rails - AWS::S3::S3Object.url_for - 如何使用新的 AWS SDK Gem 做到这一点?