【问题标题】:Heroku:The page you were looking for doesn't exist No route matches [GET] "/"Heroku:您要查找的页面不存在 No route matches [GET] "/"
【发布时间】:2014-05-17 12:22:09
【问题描述】:

我是 Rails 新手。这个问题被问了很多,但不幸的是,所提供的解决方案都没有为我工作。

在 Heroku 上,在使用 git push heroku master 推送我的文件后访问应用程序 URL 时出现错误:

您要查找的页面不存在。您可能输入了错误的地址或页面可能已移动。

这是我的日志:

2014-05-17T12:31:00.796904+00:00 app[web.1]: [2014-05-17 12:31:00] INFO  WEBrick::HTTPServer#start done.
2014-05-17T12:31:00.796853+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:160:in `start'
2014-05-17T12:31:00.796864+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/com
mands_tasks.rb:40:in `run_command!'
2014-05-17T12:31:00.796850+00:00 app[web.1]:    /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in `block in
 start'
2014-05-17T12:31:00.796866+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands.rb:
17:in `<top (required)>'
2014-05-17T12:31:00.796840+00:00 app[web.1]: [2014-05-17 12:31:00] FATAL SignalException: SIGTERM
2014-05-17T12:31:00.796868+00:00 app[web.1]:    bin/rails:4:in `require'
2014-05-17T12:31:00.796855+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/handler/webrick.r
b:14:in `run'
2014-05-17T12:31:00.796869+00:00 app[web.1]:    bin/rails:4:in `<main>'
2014-05-17T12:31:00.796856+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/rack-1.5.2/lib/rack/server.rb:264:in
`start'
2014-05-17T12:31:00.796876+00:00 app[web.1]: [2014-05-17 12:31:00] INFO  going to shutdown ...
2014-05-17T12:31:00.796858+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/ser
ver.rb:69:in `start'
2014-05-17T12:31:00.796944+00:00 app[web.1]: Exiting
2014-05-17T12:31:00.796860+00:00 app[web.1]:    /app/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/commands/com
mands_tasks.rb:81:in `block in server'
2014-05-17T12:31:00.138102+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2014-05-17T12:31:02.926026+00:00 heroku[web.1]: Process exited with status 143

这是我的 Gemfile:

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.1'
# Use sqlite3 as the database for Active Record
group :development, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
  gem 'rails_12factor'
end

gem 'rails_log_stdout',           github: 'heroku/rails_log_stdout'
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer',  platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0',          group: :doc

# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin]

我还通过添加修改了我的production.rb

  #config/environments/production.rb
  config.assets.compile = true

  # Heroku also requires this to be false
  config.assets.initialize_on_precompile=false

这是我的 routes.rb:

Rails.application.routes.draw do
exit

这个文件中的大部分代码都被注释了。

请帮忙?

【问题讨论】:

  • 你能发布你的 config/routes.rb 吗?这可能是问题的根源。
  • 我敢肯定,在 Stack Overflow 的某个地方一定已经有一个问题可以回答这个问题了......

标签: ruby-on-rails git heroku


【解决方案1】:

编辑

好的。因此,在查看了您拥有的文件后,我没有看到任何要查看的页面,这意味着 heroku 没有可显示的内容。首先,我想推荐 Micheal Hartl 的 ruby​​ on rails 教程。您可以通过谷歌搜索“ruby on rails tutorial hartl”免费找到它,这将比我更好地解释 Ruby on rails,如果您通过它并觉得它有所帮助,我相信您可以为使用它捐一些钱,我会推荐它,因为它是我和可能许多其他人用来学习 ruby​​ on rails 的绝佳资源。

好的。首先为什么您的代码不起作用。您在 routes.rb 中有 root 'welcome#index'。但是没有带有“索引”操作的 welcome_controller.rb。从命令行类型创建它(这里大写很重要)

 rails generate controller Welcome index

这将创建一个索引页面(您在路由文件中的那个),它会自动为其创建视图和“欢迎”控制器。您可以随意调用该页面,但这适用于您在 routes.rb 中已有的代码。当您完成本教程时,您会更了解这一点。这也将创建很多文件,本教程将再次帮助您了解所有文件。我只是想解决您在此处发布的问题,并尽我所能保持主题,同时让您朝着正确的方向前进。

之后,您将不得不再次推送到 git,然后再推送到 heroku。当您再次打开 heroku 时,它应该会出现在该页面上,除了通用消息之外,页面上不会有任何内容,我认为您应该看到类似于“在 app/views/welcome/index.rb 中找到我”这样的内容如果您发现您的路由工作正常。

【讨论】:

  • 如何确定控制器名称和页面名称?
  • 嗯,你想打开哪个页面,哪个控制器有它的动作?只需发布您拥有的所有控制器并告诉我您希望它首先登陆哪个页面,我可以给您答案。代码贴在 github 上吗?如果我可以在那里查看它,我也可以给你答案,如果它只是在这里粘贴一个链接。
  • 好的。所以您在应用程序中没有可查看的页面,因此当您打开 heroku 时,它无处可去。我将编辑我的答案给你一个页面来登陆这将是一个很长的答案,因为它涉及提供一堆代码。我也会在那里给出一个教程推荐。
  • 成功了!!!非常感谢!巧合的是,我正在使用 Michael Hartl 的教程。只是他的 Heroku 开箱即用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多