无法在生产环境中解析的路线(Rails 2.3.5)

Posted

技术标签:

【中文标题】无法在生产环境中解析的路线(Rails 2.3.5)【英文标题】:Routes not resolving in Production Environment (Rails 2.3.5) 【发布时间】:2010-08-14 14:25:35 【问题描述】:

我正在将我的应用部署到在 Apache 上运行乘客的实时服务器。我已经在本地测试了该应用程序,并且我的路线看起来不错。我在 app/controllers/content 下有我的公共控制器,在 app/controllers/admin 下有我的管理员控制器。

尽管在开发环境中一切正常,但我得到“您要查找的页面不存在”。当我请求 http://mydomain.com/content/compare 时出错。 (即Content::CompareController#index)。

我的生产日志包含以下行:Processing ContentController#compare (for 86.40.236.34 at 2010-08-14 15:03:15) [GET] Authentication: session found, user_id is set

ActionController::UnknownAction (No action responded to compare. Actions: ):

我已调用 rs.recognize_path 'content/compare' 并收到错误消息: ActionController::RoutingError: No route matches "content/compare" with

但是,相同的命令适用于我的开发机器。我试过添加这条线 map.connect 'content/:controller/:action' 到路由配置文件,但这没有任何影响,我认为从长远来看它也没有用。

对此有何建议? Rails 环境之间存在不一致似乎很奇怪。

提前感谢您的帮助,

【问题讨论】:

【参考方案1】:

我们可以查看您的routes.rb 文件吗?

似乎在您的生产机器上,它试图调用ContentController 中的compare 方法。这是您要调用的方法还是index

我猜你的路由文件有问题。您可以通过运行rake routes 在两种环境中进行比较。

【讨论】:

以上是关于无法在生产环境中解析的路线(Rails 2.3.5)的主要内容,如果未能解决你的问题,请参考以下文章

Rails 应用程序在生产环境中不提供资产

无法使用 Webpack 在生产环境中使用 Bootstrap CSS

如何解决错误“‘生产’环境缺少‘secret_key_base’”(Rails 4.1)

rails控制台在生产环境中挂起

在 Rails 4 生产环境中找不到资产的 404 错误

Rails:在生产环境中配置记录器以使用 Papertrail