1

在部署站点时,我是一个完全的新手,请原谅这个问题的含糊不清。

我按照 ryan bates 第 337 集 (https://github.com/railscasts/337-capistrano-recipes) 部署了我的 rails 应用程序。我正在使用带有 postgres 的 ubuntu 10.04 lts、nginx、unicorn 和 capistrano。

在 cap deploy:cold 之后一切似乎都很好。

但是当我点击我的 ip 时,我的 rails 应用程序给了我这个错误:

We're sorry, but something went wrong.

我知道这不是一个非常有用的错误消息。我认为它与数据库有关,因为我之前在使用 postgresql 在 heroku 上部署时见过它。

我不知道如何在 linode 服务器上检查我的日志文件并获取有关如何调试它的更多信息。

非常感谢任何指导。

谢谢大家。

4

2 回答 2

2

您需要使用 ssh 登录到您的 linode 服务器并自己查看日志文件。

config/deploy.rbRailscast 文件中的这一行:

set :deploy_to, "/home/#{user}/apps/#{application}"

告诉您应用程序部署到 linode 服务器上的哪个目录。在该目录中,您应该会看到一个名为shared/log;的目录。你的日志应该在那里。

于 2012-10-14T19:43:44.483 回答
1

我在OpenShift上部署 Rails 应用程序时遇到了类似的问题。

在我的情况下,错误是由缺少资产产生的,未在清单文件中定义。

事实证明,它必须与assets做一些事情。我开始挖掘它,我发现它是在 Rails 找不到您正在寻找的资产时生成的,因为它们要么丢失,要么未编译,要么未包含在清单中(直接通过名称或间接通过要求树)。

第一种情况很清楚。您应该将它们包含在您的应用程序代码中,或者您应该将它们添加到您的设备中。第二种情况对您来说应该不是问题,因为 OpenShift 会为您做到这一点。但是,如果您确实对此有疑问,请在论坛中搜索有关不编译资产的问题。

The third case has two solutions. There is a right one and quick one. I'll need an expert's opinion about the second one. Here they are: You need to add the asset (usually a stylesheet and/or some third-party tool) to the list of items to precompile in the environment application.rb.

config.assets.precompile += ['960sm.css']

Or the quick way I found, which will work universally for all your assets: There is a setting in the config/environments/production.rb

config.assets.compile = true

Set it to true like that and this should solve the problem.

I hope this helps. I spent two weeks digging on the same problem.

于 2012-10-14T19:50:56.667 回答