Rails - 在本地主机上创建内部服务器错误(500)

Posted

技术标签:

【中文标题】Rails - 在本地主机上创建内部服务器错误(500)【英文标题】:Rails - Create internal server error (500) at localhost 【发布时间】:2012-05-12 14:32:22 【问题描述】:

当我访问没有数据的 URL 时,我看不到 500 错误,而是显示“模板丢失”错误。同时,当我在服务器上运行它时,它显示了 500 错误。我需要在本地机器上进行测试。那么请告诉我如何在 localhost 上创建这样的情况?

感谢和问候, 拉杰什

【问题讨论】:

首先,接受一些答案。其次,您要查找的是 404 而不是 500 错误。 @Bongs,Simpleton:我怎样才能接受答案?是通过投票来回答吗?如果是,我的声望应该在 15 岁以上,而我没有。我是初学者,请合作。 meta.stackexchange.com/a/5235 这会帮助你 【参考方案1】:

这是一个简单的问题,您的相应视图不存在。打开与您的 url 对应的控制文件。然后查看正在调用的操作,然后查看 app/views/ 文件夹中是否有相应的视图。

500 错误的原因与 500 表示服务器端存在内部错误相同。

另外,不要更改 url 的字符之类的东西。它不会工作!

【讨论】:

您好,Unsung,感谢您的反馈。但是,对于相同的代码库和产品 URL,生产服务器通过显示我们为 500 错误创建的布局返回 500 错误(因为产品不存在于服务器数据库中)。为什么它没有发生在本地主机上?? 可能是异常处理场景。您的控制器可能会抛出异常,或者可能会抛出代码中未处理的错误。您需要验证如何在代码级别处理产品不在数据库中的场景。我一直怀疑问题出在处理方式上。【参考方案2】:

如果你在生产模式下运行服务器,你可以在localhost中创建这样的情况:rails s -e production(当然,如果错误仍然存​​在)

【讨论】:

【参考方案3】:

如果您收到模板丢失错误,很可能是因为您缺少给定控制器操作的视图文件

例如:如果您有一个名为 users 的控制器

class UsersController < ApplicatationController

   def index
   end

end

默认情况下,rails 期待一个视图

app/views/users/index.html.erb(或haml)

但是,如果您可以发布您收到的错误日志,我们可能会为您提供更多帮助

问候

同人

【讨论】:

'0.0.0.0:3000/-avesani-3ygcc-55dsl-sunglasses_r9' 是我们收到模板缺失错误的 localhost URL。此 URL 用于显示特定产品的功能,当我们从产品列表中单击同一产品时,我们将被重定向到此 URL。如果我们更改 URL 中的某些内容并按 Enter 键,我们会收到 Template missing 错误。但是在生产域中,即在服务器上,对应于同一产品的 URL 显示 500 错误。我需要在本地主机上创建它。我将向您展示显示的模板错误。请帮助我。 模板丢失缺少模板页/-avesani-3ygcc-55dsl-sunglasses_r1 与 :formats=>[:html], :handlers=>[:rjs, :rhtml, :haml, :rxml , :erb, :builder], :locale=>[:en, :en] 在视图路径 "/home/rajesh/www/shoppingsaver/Source/app/views", "/home/rajesh/www/shoppingsaver/ Source/vendor/plugins/tabnav/app/views”, “/home/rajesh/www/shoppingsaver/Source/vendor/plugins/recaptcha/app/views”, “/var/lib/gems/1.8/gems/kaminari- 0.12.4/app/views", "/home/rajesh/www/shoppingsaver/Source", "/" 嗨@rajesh,你能否提供控制器方法来了解你如何获取产品详细信息(似乎这是一个产品名称),通常在这样的情况下我们通过产品名称,它呈现部分细节,顺便说一句,你确定你的产品名称是正确的吗? (-avesani-3ygcc-55dsl-sunglasses_r1) 因为开头有一个 - 有点奇怪:) 好的,尝试在生产模式下运行 localhost ruby​​ script/server -e production(或 Rails3 中的 rails s),看看它是否和服务器一样工作,因为默认的 localhost 在开发模式下运行并且服务器很可能在生产模式下运行

以上是关于Rails - 在本地主机上创建内部服务器错误(500)的主要内容,如果未能解决你的问题,请参考以下文章

当我在本地主机上运行我的服务器时出现问题(ruby on rails)

Rails 4:在本地主机上重新验证“无效的站点密钥”

本地主机上的 .htaccess 正常,网络服务器上出现 500 内部服务器错误

本地主机上的 rails 子域

API调用代码在本地主机上工作但不在服务器上

AWS RDS SQL 数据库在本地主机上工作——从服务器抛出错误