【问题标题】:missing config directory on Heroku - LoadError in config.ruHeroku 上缺少配置目录 - config.ru 中的 LoadError
【发布时间】:2012-05-17 14:30:46
【问题描述】:

更新
我现在知道(通过运行heroku run bashls -la)在部署到heroku 后确实缺少config 目录。但是,它存在于本地存储库中。


.gitignore

/.bundle

# Ignore the default SQLite database.
/db/*.sqlite3

# Ignore all logfiles and tempfiles.
/log/*.log
*.log
/tmp

将我的应用程序推送到 heroku 后,我收到 /app/config/environment 的 LoadError,这在以前的版本中没有发生过。 未对 config.ru 进行任何更改。 文件config/environment.rb 存在。

我尝试了回滚,但因为之前的版本有不同的附加组件而无法回滚。

我该如何解决这个错误?

Heroku 日志:


2012-05-09T03:59:15+00:00 heroku[slugc]: Slug compilation started
2012-05-09T04:00:36+00:00 heroku[api]: Release v48 created by xxx
2012-05-09T04:00:36+00:00 heroku[api]: Deploy ac5eee6 by xxx
2012-05-09T04:00:36+00:00 heroku[web.1]: State changed from crashed to created
2012-05-09T04:00:36+00:00 heroku[web.1]: State changed from created to starting
2012-05-09T04:00:36+00:00 heroku[slugc]: Slug compilation finished
2012-05-09T04:00:44+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 6745`
2012-05-09T04:00:47+00:00 app[web.1]: /app/config.ru:3:in `require': no such file to load -- /app/config/environment (LoadError)
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/config.ru:3:in `block in <main>'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/config.ru:1:in `new'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/config.ru:1:in `<main>'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/rack/adapter/loader.rb:36:in `eval'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/rack/adapter/loader.rb:36:in `load'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/rack/adapter/loader.rb:45:in `for'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/controllers/controller.rb:169:in `load_adapter'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/controllers/controller.rb:73:in `start'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/runner.rb:185:in `run_command'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/lib/thin/runner.rb:151:in `run!'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/thin-1.3.1/bin/thin:6:in `<top (required)>'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:19:in `load'
2012-05-09T04:00:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bin/thin:19:in `<main>'
2012-05-09T04:00:47+00:00 app[web.1]: >> Using rack adapter
2012-05-09T04:00:48+00:00 heroku[web.1]: Process exited with status 1
2012-05-09T04:00:48+00:00 heroku[web.1]: State changed from starting to crashed

config.ru


# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run ItAngel::Application

【问题讨论】:

    标签: ruby-on-rails heroku thin


    【解决方案1】:

    我已就我的应用程序的类似问题联系 heroku,我们发现删除文件 .gitignore 旁边的文件 .slugignore 解决了问题。

    在你身边可能是同样的情况,你可以在这里看到我的问题: why config folder is not pushed?

    看看我对我的问题的回答。

    我希望这会有所帮助

    【讨论】:

    • 嘿萨米尔。确实,这就是“解决”我的问题的原因——我忘了​​回答我的问题。但这很不令人满意,因为那时您显然不能使用 .slugignore。
    • 我认为 heroku 会解决这个问题,因为他们的技术支持告诉我删除 .slugignore,所以他们知道这一点!很高兴知道你解决了你的问题:-)
    【解决方案2】:

    使用发布管理http://blog.heroku.com/archives/2010/11/17/releases/,每次添加或删除配置变量时,它都会创建一个新版本,因此即使您有不同的附加组件集,您也应该能够回滚到以前的版本。

    你的 Procfile 中有什么?尝试像这样指定RACK_ENV

    web: bundle exec thin start -p $PORT -e $RACK_ENV
    

    当您运行git push heroku master 时,一切似乎都正常吗?

    【讨论】:

    • 嗨。运行git push heroku master 确实似乎工作得很好。同时,我了解到 heroku 上缺少整个 config 目录(尽管 .gitignore 或 .slugignore 中没有这样的行)
    • 我和你的问题一样...你找到解决办法了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多