在部署网站方面,我是一个完整的新手,请原谅这个问题的模糊性。
我已经按照ryan bates剧集#337(https://github.com/railscasts/337-capistrano-recipes)来部署我的rails应用程序。我正在使用ubuntu 10.04 lts,nginx,unicorn和capistrano与postgres。
帽子部署后:冷却一切似乎都很好。但是当我点击我的ip时,我的rails应用程序给了我这个错误:
We're sorry, but something went wrong.
我知道这不是一个非常有用的错误消息。我假设它与数据库有关,因为我之前在使用postgresql在heroku上部署时已经看过它。
我不知道如何在linode服务器上检查我的日志文件,并获得有关如何调试它的更多信息。
非常感谢任何指导。
提前谢谢大家。
答案 0 :(得分:2)
您需要使用ssh登录linode服务器并亲自查看日志文件。
来自Railscast中的config/deploy.rb
文件的这一行:
set :deploy_to, "/home/#{user}/apps/#{application}"
告诉您应用程序部署到的linode服务器上的哪个目录。在该目录中,您应该看到名为shared/log
的目录;你的日志应该在那里。
答案 1 :(得分:1)
我在 OpenShift 上部署Rails应用程序时遇到了类似的问题。
在我的情况下,错误是由缺少的资产生成的,未在清单文件中定义。
事实证明它必须对资产做一些事情。我开始挖掘它,我发现它是在Rails无法找到您正在寻找的资产时生成的,因为它们丢失或者未编译或者它们未包含在清单中(直接通过名称或间接通过require_tree)。
第一个案例很清楚。您应该将它们包含在应用程序的代码中,或者将它们添加到您的设备中。第二种情况对您来说不是问题,因为OpenShift会为您做到这一点。但如果您确实遇到问题,请在论坛中搜索有关未编译资产的问题。
第三种情况有两种解决方案。有一个正确的,快速的。我需要专家对第二个问题的看法。它们是:您需要将资产(通常是样式表和/或某些第三方工具)添加到要在环境application.rb中预编译的项目列表。
config.assets.precompile += ['960sm.css']
或者我找到的快捷方式,它将普遍适用于您的所有资产:
config/environments/production.rb
config.assets.compile = true
将它设置为true,这样可以解决问题。
我希望这会有所帮助。我花了两周的时间来研究同样的问题。