Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails教程示例应用程序在Heroku中失败,日志为:ActionController::RoutingError(没有与[GET]";/about;匹配的路由):_Ruby On Rails_Heroku_Railstutorial.org - Fatal编程技术网

Ruby on rails Rails教程示例应用程序在Heroku中失败,日志为:ActionController::RoutingError(没有与[GET]";/about;匹配的路由):

Ruby on rails Rails教程示例应用程序在Heroku中失败,日志为:ActionController::RoutingError(没有与[GET]";/about;匹配的路由):,ruby-on-rails,heroku,railstutorial.org,Ruby On Rails,Heroku,Railstutorial.org,我正在学习Rails教程的在线版本。第3章中的示例_应用程序在本地运行良好,但当推送到Heroku时,会找到主页,但找不到其他页面。尝试查看“关于”页面后运行heroku日志会给我(以及其他许多)上述错误: 2015-08-09T02:56:43.916991+00:00应用程序[web.1]:操作控制器::路由错误(没有与[GET]“/about]匹配的路由): 我的routes.rb文件是 Rails.application.routes.draw do root 'static_pag

我正在学习Rails教程的在线版本。第3章中的示例_应用程序在本地运行良好,但当推送到Heroku时,会找到主页,但找不到其他页面。尝试查看“关于”页面后运行heroku日志会给我(以及其他许多)上述错误:

2015-08-09T02:56:43.916991+00:00应用程序[web.1]:操作控制器::路由错误(没有与[GET]“/about]匹配的路由):

我的routes.rb文件是

Rails.application.routes.draw do
  root 'static_pages#home'
  get 'static_pages/help'
  get 'static_pages/about'
end
我仔细地按照指示做了。我尝试删除并重新创建Heroku文件。我做了网络搜索,尝试了一些没有用的东西。我的gemfile直接来自这本书的在线版本,它使用的是当前版本



已解决:#Thedanoto让我运行
heroku运行rake routes
,这表明帮助和关于页面被定向到{root}/static}pages/about,而不是{root}/about。我仍然不明白为什么教程中给出了关于路线的选项,这些选项似乎不符合预期,欢迎进一步评论,但我将此标记为已解决。

如果它在本地运行良好,我假设您已正确设置了控制器、视图等

您是否确保提交所有这些必要的更改,然后推送

e、 g


您是否使用以下URL访问“关于”页面?


[用你的Heroku应用程序名替换“YourHerokAppName”]

每当我找不到路由时,我都会运行terminal命令

rake routes
既然你在heroku,你会想跑的

heroku run rake routes
它将返回类似于以下内容的内容

Prefix Verb        URI Pattern                       Controller#Action
static_pages_about GET /static_pages/about(.:format) static_pages#about
因此,这表明您可以访问
www.[heroku\u app\u name].herokuapp.com/static\u pages/about
,它会将您带到您想要的页面。您还可以在视图中添加指向页面的链接,方法是在视图中放置以下代码行

<%= link_to("About", static_pages_about_path) %>

或者

get "/about", to: "rabbits#about"

您可以阅读更多关于

当您运行命令时会得到什么:heroku run rake routes伟大的建议!我正在运行连接到终端的
rake routes
。。。启动,运行.3908前缀动词URI模式控制器#操作根GET/static_pages#主页static_pages#帮助GET/static_pages/help(:format)static_pages#帮助static_pages#关于GET/static_pages/about(:format)static_pages#about果然,当我运行页面时会出现!我将在下面更新我的问题。谢谢你的帮助!我将添加您可以接受的详细答案。为了将问题标记为已解决,请不要编辑该问题。请改为。通过这种方式,您和被接受的用户可以获得一些声誉积分,您可以帮助其他人稍后找到正确答案。我正在访问works的主页,通过该主页,我可以访问about页面,通过该页面,我可以看到“您要找的页面不存在”消息。@WahhabB。。确切地说,enigmatic-beach-9653.herokuapp.com/about会向您抛出此错误,因为您尚未在route.rb文件中为此定义任何路由。如果您想使用enigmatic-beach-9653.herokuapp.com/about访问about页面,那么您只需在route.rb文件中定义一个命名路由即可。只需替换:用get'about'=>'static_pages#about'代替get'static_pages/about'很好的建议,但是是的,我做了这些事情。我已经取得了进展——请参阅我的进一步评论。
get 'static_pages/about'
get "static_pages/about", path:"/about"
get "/about", to: "rabbits#about"