我正在尝试在 Heroku 上部署一个应用程序,但尚未运行它。我看到了 Rails 500 页面(“我们很抱歉,但出了点问题”),但是当我 heroku 日志
时,我没有看到任何有趣的东西:
==> exceptional.log <==
# Logfile created on Tue Nov 02 11:27:18 -0700 2010 by logger.rb
[INFO] (init.rb:21) Tue Nov 02 18:27:18 UTC 2010 - Loading Exceptional 2.0.26 for 2.3.5
==> dyno-2858334.log <==
>> Thin web server (v1.2.6 codename Crazy Delicious)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:15336, CTRL+C to stop
==> production.log <==
# Logfile created on Tue Nov 02 11:27:17 -0700 2010
如您所见,我已经安装了 Exceptional 插件,并且 Exceptional 没有报告任何异常。
在 Heroku 上启动应用程序期间,什么可能会默默失败?
最佳答案
答案:我们的应用程序使用 Sass,它尝试将其编译的 CSS 写入 public/
目录。在 Heroku 上,它位于只读文件系统上。相反,我安装了 Hassle ,它将编译后的 Sass CSS 放在 tmp/
下,这是可读写的。
Heroku 支持人员通过将环境设置为 development
发现了该问题,这允许记录错误:
heroku config:add RACK_ENV=development
Hassle 网站建议添加 Hassle 作为插件,但当我只能使用 gems 时,我不喜欢使用插件。我通过将其添加到 Gemfile 并将其添加到 environment.rb
来使其工作:
# existing requires
# ...
require 'hassle'
Rails::Initializer.run do |config|
# ...
# existing config
# ...
config.middleware.use Hassle
end
现在它就可以工作了。
关于ruby-on-rails - Heroku 应用程序在启动时无提示地失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4081165/