Sinatra错误(捆绑程序:无法加载命令:rackup)

时间:2018-07-13 08:53:36

标签: heroku sinatra config procfile rackup

将模块化Sinatra应用程序部署到Heroku时,出现此错误:

public class ItemTableViewController<T>: UIViewController where T: AvatarItem { fileprivate let viewModel: ItemTableViewModel public init(avatarItems: [T], selectedAvatarItem: @escaping (T) -> Void, configureCell: @escaping ConfigureAvatarCell) { viewModel = ItemTableViewModel(avatarItems: avatarItems, selectedAvatarItem: selectedAvatarItem, configureCell: configureCell) super.init(nibName: .none, bundle: .none) configureView() } public class AvatarItemTableViewController<T>: ItemTableViewController where T: AvatarItem { fileprivate let viewModel: AvatarItemTableViewModel public init(avatarItems: [T], selectedAvatarItem: @escaping (T) -> Void, configureCell: @escaping ConfigureAvatarCell) { super.init(avatarItems: avatarItems, selectedAvatarItem: selectedAvatarItem, configureCell: configureCell) super.viewModel = AvatarItemTableViewModel(avatarItems: avatarItems, selectedAvatarItem: selectedAvatarItem, configureCell: configureCell) }

我尝试调整config.ru和Procfile,但没有成功。这是config.ru的内容:

if [ -d "$working_dir"/"$line"/Actual_Program_and_Database ]
then
  sw_dir='Actual_Program_and_Database'
  num_files=$(ls "$working_dir"/"$line"/Actual_Program_and_Database | wc -l) #count files in dir
  db_counter=0 # count Clarion DB files in dir
  for filename in "$working_dir"/"$line"/Actual_Program_and_Database/*
  do
  file_type=$(file "$filename")
  if [[ $file_type = *Clarion* ]]
    then
      db_path[$db_counter]=$filename
      db_name[$db_counter]=$(basename "$filename")
      db_hash[$db_counter]=$(md5sum "$filename" | awk '{ print $1 }')
      ((db_counter ++))
     elif [[ $file_type = *POSIX* ]]
     then
       script_path=$filename
       script_name=$(basename "$filename")
       script_hash=$(md5sum "$filename" | awk '{ print $1 }')
     elif [[ $file_type = *CRLF* ]]
     then
       list_path=$filename
       list_name=$(basename "$filename")
       list_hash=$(md5sum "$filename" | awk '{ print $1 }')
     else
       unknown_file='1'
  fi
  done
else
  sw_dir='0'
fi

Procfile:

bundler: failed to load command: rackup (/app/vendor/bundle/ruby/2.4.0/bin/rackup)

lib / app.rb:

$LOAD_PATH.unshift(::File.expand_path('lib', ::File.dirname(__FILE__)))

require_relative 'lib/app'
run Tir::App

请指向正确的方向。

PS。我可以部署该应用程序,但是尝试通过Pony gem发送电子邮件时出现上述错误。

已编辑2018年7月20日: 我已经调试了这个问题,并找到了导致崩溃的行:

https://gist.github.com/abbottjam/248edfd50f094f99b3bf5b1f995fd290#file-static-rb-L15

错误消息现在显示:

  

内部服务器错误:没有将数组隐式转换为字符串

因此它必须是下面web: bundle exec rackup config.ru -p $PORT 方法中的代码块。仍然不知道应该在哪里进行数组->字符串转换。谢谢。

1 个答案:

答案 0 :(得分:0)

问题不在于代码,而在于Heroku的电子邮件附件。从Mailgun切换到SendGrid可以立即解决问题。前者旨在混淆您选择他们的付费计划之一的情况;后者可以帮助您以最少的设置立即出手。

相关问题