首页 > 解决方案 > Sinatra 错误(捆绑程序:加载命令失败:rackup)

问题描述

将模块化 Sinatra 应用程序部署到 Heroku 时,我不断收到此错误:

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

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

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

require_relative 'lib/app'
run Tir::App

档案:

web: bundle exec rackup config.ru -p $PORT

库/app.rb:

require 'sinatra/base'
module Tir
 class App < Sinatra::Base
  # code
 end
end 

请指出我正确的方向。

PS。我能够部署应用程序,但在尝试使用 Pony gem 发送电子邮件时出现上述错误。

编辑 20.07.2018: 我已经调试了这个并找到了导致崩溃的行:

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

错误消息现在说:

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

所以一定是configure_options下面方法中的代码块。仍然不知道应该在哪里进行数组 -> 字符串转换。谢谢。

标签: herokusinatraconfigprocfilerackup

解决方案


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


推荐阅读