【问题标题】:Heroku problem : The page you were looking for doesn't existHeroku 问题:您要查找的页面不存在
【发布时间】:2011-09-11 07:46:18
【问题描述】:

我一直在看这本书,直到第 5 章完成,它在我的 linux 工作站上运行良好 当我推送到 Heroku 时,所有数据都正确推送,但是当我尝试打开 Heroku 时(http://vivid-sky-685.heroku.com)

我收到 404 消息。

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

下面是我的Gemfile申请

source 'http://rubygems.org'
gem 'rails', '3.0.5'
gem 'sqlite3'

group :development do
  gem 'rspec-rails', '2.5.0'
end

group :test do
  gem 'rspec', '2.5.0'
  gem 'webrat', '0.7.1'
  gem 'spork', '0.9.0.rc4'
end

gem 'rake','~> 0.8.7'

有什么想法可能会出错吗?

@odin 这是我的 heroku 日志,谢谢

2011-09-11T10:41:57+00:00 heroku[router]: GET vivid-sky-685.heroku.com/y dyno=web.1 queue=0 wait=0ms service=5ms status=404 bytes=728
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: Started GET "/y" for 93.186.31.80 at 2011-09-11 03:41:57 -0700
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: ActionController::RoutingError (No route matches "/y"):
2011-09-11T10:41:57+00:00 app[web.1]:   
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 app[web.1]: 
2011-09-11T10:41:57+00:00 heroku[nginx]: 93.186.31.80 - - [11/Sep/2011:03:41:57 -0700] "GET /y HTTP/1.1" 404 728 "-" "Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.546 Mobile Safari/534.8+" vivid-sky-685.heroku.com
2011-09-11T11:45:28+00:00 heroku[web.1]: Idl

2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from up to down
2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from down to created
2011-09-11T11:45:29+00:00 heroku[web.1]: State changed from created to starting
2011-09-11T11:45:30+00:00 heroku[web.1]: Stopping process with SIGTERM
2011-09-11T11:45:30+00:00 app[web.1]: >> Stopping ...
2011-09-11T11:45:30+00:00 heroku[web.1]: Process exited
2011-09-11T11:45:30+00:00 heroku[web.1]: Starting process with command `thin -p 16738 -e production -R /home/heroku_rack/heroku.ru start`
2011-09-11T11:45:33+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2011-09-11T11:45:33+00:00 app[web.1]: >> Maximum connections set to 1024
2011-09-11T11:45:33+00:00 app[web.1]: >> Listening on 0.0.0.0:16738, CTRL+C to stop
2011-09-11T11:45:33+00:00 heroku[web.1]: State changed from starting to up
2011-09-11T12:53:00+00:00 heroku[web.1]: Idling
2011-09-11T12:53:01+00:00 heroku[web.1]: State changed from up to down
2011-09-11T12:53:02+00:00 heroku[web.1]: Stopping process with SIGTERM
2011-09-11T12:53:02+00:00 app[web.1]: >> Stopping ...
2011-09-11T12:53:02+00:00 heroku[web.1]: Process exited
2011-09-11T13:18:21+00:00 heroku[rake.1]: State changed from created to starting
2011-09-11T13:18:23+00:00 app[rake.1]: Awaiting client
2011-09-11T13:18:23+00:00 app[rake.1]: Starting process with command `bundle exec rake db:migrate`


2011-09-11T13:18:26+00:00 heroku[rake.1]: Process exited
2011-09-11T13:18:26+00:00 heroku[rake.1]: State changed from up to complete
2011-09-11T13:20:02+00:00 heroku[web.1]: Unidling
2011-09-11T13:20:02+00:00 heroku[web.1]: State changed from down to created
2011-09-11T13:20:02+00:00 heroku[web.1]: State changed from created to starting
2011-09-11T13:20:04+00:00 heroku[web.1]: Starting process with command `thin -p 48393 -e production -R /home/heroku_rack/heroku.ru start`
2011-09-11T13:20:06+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
2011-09-11T13:20:06+00:00 app[web.1]: >> Maximum connections set to 1024
2011-09-11T13:20:06+00:00 app[web.1]: >> Listening on 0.0.0.0:48393, CTRL+C to stop
2011-09-11T13:20:07+00:00 heroku[web.1]: State changed from starting to up
2011-09-11T13:20:07+00:00 app[web.1]: 
2011-09-11T13:20:07+00:00 app[web.1]: 
2011-09-11T13:20:07+00:00 app[web.1]: Started GET "/" for 118.137.144.220 at 2011-09-11 06:20:07 -0700
2011-09-11T13:20:08+00:00 app[web.1]: 
2011-09-11T13:20:08+00:00 app[web.1]: ActionController::RoutingError (uninitialized constant PagesController):
2011-09-11T13:20:08+00:00 app[web.1]:   
2011-09-11T13:20:08+00:00 app[web.1]: 
2011-09-11T13:20:08+00:00 app[web.1]: 
2011-09-11T13:20:08+00:00 heroku[router]: GET vivid-sky-685.heroku.com/ dyno=web.1 queue=0 wait=0ms service=403ms status=404 bytes=728
2011-09-11T13:20:08+00:00 heroku[nginx]: 118.137.144.220 - - [11/Sep/2011:06:20:08 -0700] "GET / HTTP/1.1" 404 728 "-" "Mozilla/5.0 (X11; Linux i686; rv:2.0) Gecko/20100101 Firefox/4.0" vivid-sky-685.heroku.com

【问题讨论】:

  • @widjajayd 在您的控制台中键入“heroku 日志”并发布您获得的打印输出。
  • 只是让你知道你不是靠你自己的,我正遭受这个问题的困扰。你找到原因了吗?
  • 我遇到了这个问题。我正在处理我在 routes.rb 中定义的联系方式上的联系表格。当我访问 heroku 提供的 url(例如 www.example_heroku_url.com/)时,我得到了像你一样的 404。这是因为我没有定义根路径或索引视图。所以当我访问 www.example_heroku_url.com/contact-me 时它起作用了。真是愚蠢的错误,但我想我会分享以防它帮助某人

标签: ruby-on-rails


【解决方案1】:

我知道这是一个老问题,但我也遇到过。我意识到在推送之前我没有更改config/routes.rb 中的根路由。不更改它可能会导致在本地出现欢迎页面,但在 heroku 上会出现上述错误。

【讨论】:

  • 很好的答案,rails server -e production 帮我缩小了范围。
  • 是的,有一个空的 routes.rb 文件(因为在 do 和 end 中没有任何内容)是一个问题,这很奇怪,因为今天早些时候它不是问题,而是去了 heroku 欢迎页面,但是没关系,因为无论如何都不想要一个空的 routes.rb
  • 是的,有一个空的 routes.rb 文件(在 do 和 end 中没有任何内容)是一个问题。我想我会在本地获得 Rails 欢迎页面。如果我不提交也不向 Heroku 推送任何提交,我会得到 Heroku 欢迎页面。但是在这里我没有路线并做出承诺并将其推送到 Heroku。所以是的,虽然我有本地 rails 欢迎页面,但我从 Heroku 收到了这个错误
【解决方案2】:

我遇到了同样的问题;但是,在更改位于 config/environments/production.rb 的 production.rb 的 1 行代码后,

config.assets.compile = false

config.assets.compile = true

提交新的更改。然后我的示例应用程序在 heroku 上运行良好

【讨论】:

  • 即使资产编译设置如上所述,我仍然存在同样的问题。对 heroku 的 bundle log 进行更深入的研究表明,唯一的警告是添加 gem rails_12factor 的建议。令人惊讶的是,它有帮助。这是 rails 4.0.1 ruby​​ 2.0.0,但仍然可以帮助某人吗?
  • 对于 rails 4+,您需要在 gemfile 中包含“gem 'rails_12factor'。还需要确保使用 postgres 进行生产而不是 sqlite3: group :development do gem 'sqlite3' end group :生产做 gem 'pg' end gem 'rails_12factor'
  • 投反对票。您不应该在生产中破坏资产预编译;相反,您应该解决问题。
  • @MarnenLaibow-Koser 那么你有什么更好的主意?
  • @barlop Heroku 现在运行 rake assets:precompile 作为部署的一部分。那部分应该可以正常工作。
【解决方案3】:

我正在使用 postgresql,而且我的页面也没有显示在 heroku 上。

这个命令修复了它:

heroku run rake db:setup

然后

heroku rake db:migrate

我之前迁移过,但没有先完成设置。

我也试过设置

config.assets.compile = true

在 production.rb 中,但这没什么区别。

【讨论】:

  • 嗯,也许您应该发布您的日志输出?查看 Hishalv 的评论
  • 非常适合我!
【解决方案4】:

您是否尝试过在本地以生产模式运行?试试rails server -e production 看看你是否得到同样的错误,然后你可以调试。还要确保你已经完成了heroku rake db:migrate

【讨论】:

  • 我确实尝试过 server -e production,但我仍然可以看到我的网站(虽然我失去了 css 格式),
  • 我也做了heroku rake db:migrate 但问题依然存在,我上传了我的heroku日志,谢谢你的帮助
  • 尝试安装“瘦”网络服务器(Gemfile 中的gem 'thin'),然后执行bundle exec rails server thin -e production 看看会发生什么。那是他们在 Heroku 上使用的同一台服务器。
【解决方案5】:

在我的情况下,这是一个缺少的起始页面,它在开发模式下没有导致问题,但确实在 heroku 上导致了上述问题。接受的答案on this thread 提供了更多信息。

【讨论】:

    【解决方案6】:

    也遇到了这个问题。通过设置根路由解决了它。在我的例子中,root 'pages#home' 在 config/routes.rb

    如果未设置根路由,您将被重定向到 localhost:3000。因此,

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

    【讨论】:

    • 才发现纪翔已经给出了这个答案。希望我有一台时间机器来击败他。 :)
    【解决方案7】:

    1.始终在路由中设置根。那是轨道 101

    我不会一直将资产预编译设为错误。对于生产应用程序,我觉得如果资产已经预编译,它会提高整体速度。

    2。根据经验,我总是在推送到 git 之前运行 rake assets:precompile。请尝试一下。然后提交到 git 存储库,然后提交到 heroku。做heroku restart

    3。另一个原因可能是 heroku rake db:migrate,请检查您是否这样做

    4.这也是我为开发和生产组设置的 Gemfile

    group :development do 
        gem 'sqlite3'        
    end
    
    group :production do    
        gem 'pg'
        gem 'rails_12factor'
        gem 'heroku-deflater'   
    end
    

    【讨论】:

      【解决方案8】:

      我对heroku有一个非常相似的问题,从这个问题中找到了答案:

      RefineryCMS routes for Home page doesn't work

      为了节省您的阅读时间,解决方案是使用高级选项更新“主页”,有一个问题:

      “将此页面转发到另一个网站或页面”

      / 填写它,它应该可以工作。这听起来有点倒退,因为它实际上将 /my_page 设置为重定向到“/”。但是这样想是:

      炼油厂页面扩展正在寻找带有 url '/' 的页面 主页。所以通过告诉标题为“主页”的页面你想要它 要拥有 url '/',您将其设置为最终主页 就炼油厂页面扩展而言。 (引自@Philip Arndt)

      【讨论】:

        【解决方案9】:

        所以我必须按照这个顺序运行,它对我有用

        $ heroku rake db:migrate
        $ heroku run rake db:setup
        

        【讨论】:

          【解决方案10】:

          在应用程序中指定 Ruby 版本 Rails 5 需要 Ruby 2.2.0 或更高版本。 Heroku 默认安装了最新版本的 Ruby,但是您可以使用 Gemfile 中的 ruby​​ DSL 指定确切的版本。

          在 Gemfile 末尾添加:

          红宝石“2.4.1”

          【讨论】:

            【解决方案11】:

            我遇到了同样的问题,但问题是该应用程序缺少像 root 一样的主页。 Heroku 的默认主页是 HTMLthe default page。但是,如果您尝试所有定义的路线,它们将像这样工作:

            appname.herokuapp.com/route

            【讨论】:

              【解决方案12】:

              我遇到了同样的错误,但我意识到我没有在 config/routes.rb 文件中将 HTML 动词从 GET 更改为 ROOT。

              原来是get "/hello", to: "application#hello"

              我更新为root "application#hello"

              然后我将它推送到 git 并部署到生产环境中。

              【讨论】:

                【解决方案13】:

                我遇到了同样的错误,因为我使用此命令 git push heroku master 将相同的非 master 分支推送到 heroku master。这显然会导致冲突。

                我还使用heroku run rake routes 检查了路线。但输出不是我的实际路线。甚至没有一个。
                将非 master 分支推送到 heroku master 的正确方法是

                git push -f heroku your_branch_name:master

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-01-09
                  • 1970-01-01
                  • 2016-09-25
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-06-01
                  相关资源
                  最近更新 更多