【问题标题】:Why does my demo app on Heroku only show the "Welcome Aboard" page为什么我在 Heroku 上的演示应用程序只显示“Welcome Aboard”页面
【发布时间】:2012-10-04 20:02:51
【问题描述】:

注意:我花了一个上午仔细检查了关于这个主题的类似问题,但没有帮助。

我的问题

我正在关注 Michael Hartl 的 Ruby-on-Rails 教程。第一个演示应用程序运行良好。它显示“Welcome Aboard”,当我添加 /users 时,它会运行演示应用程序。 我将它推送到 Heroku,它在那里运行,但只显示 Welcome Aboard 页面。添加 /users 得到“您要查找的页面不存在。”。我没有改变任何路线。看来我现在应该可以在 Heroku 上查看我的演示应用程序了。我很惊讶,因为教程非常详尽。

进一步的实验

我删除了public/index.html。并将其从 git 中删除并提交并使用git status 进行验证。当我尝试打开 localhost/3000 时,我得到了预期的“路由错误”。当我添加 /users 时,演示应用程序按预期工作。我没有更改 routes.rb。教程中没有指示我这样做。

现在我推送到 Heroku 并在那里打开我的应用程序,我现在得到“您要查找的页面不存在”。这似乎是对的。就好像我在本地运行时打开了localhost/3000一样。 但是当我在 Heroku 添加 '/users' 时,我仍然会收到页面错误。 我需要添加路线吗?这在教程中没有提到(或者我忽略了一些东西)。

感谢这位 Rails 新手的帮助。

更多信息

我确实添加了一个指向users/index 的路由,这使得我的本地主机版本直接对应用程序开放,而无需手动将users 添加到URL 上。但是当完全提交并推送到 heroku 时,我仍然会收到页面错误。

这是 rake 路由的输出:

~/Documents/demo_app: rake routes
users       GET    /users(.:format)          users#index
            POST   /users(.:format)          users#create
new_user    GET    /users/new(.:format)      users#new
edit_user   GET    /users/:id/edit(.:format) users#edit
user        GET    /users/:id(.:format)      users#show
            PUT    /users/:id(.:format)      users#update
            DELETE /users/:id(.:format)      users#destroy
root                                         users#index

【问题讨论】:

  • 我犯的一个错误是忘记运行“heroku run rake db:migrate”
  • 你能在你的终端上rake routes 告诉我们你得到了什么吗?
  • 我刚刚运行了上面给出的 rake migrate 命令,但仍然出现寻呼机错误。我还添加了一条在本地工作的路由,可以直接访问用户,而无需在 URL 中添加“/users”。这是 rake 路由的输出(我使用了“Answer”,因此格式正确)
  • 其实我把它加到我上面的问题里了。

标签: ruby-on-rails


【解决方案1】:

试试这个

heroku run rake db:create
heroku run rake db:migrate

运行您的应用程序

# in your terminal write
heroku logs -e production

它会在你的终端显示错误,以便你理解。

【讨论】:

  • 感谢您的帮助。两次迁移后,我运行了我的应用程序,但仍然找不到页面。尝试运行您的日志命令会收到此错误:Invalid arguments: "-e" and "production"。在没有这两个参数的情况下运行日志会得到很长的序列或步骤,这些步骤对我来说没有任何明显的意义。有一个像这样的“弃用”警告:DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins 但目前听起来很安全。我应该发布日志输出吗?也许那里有我想念的东西。
  • 一切正常。我的第一个新手错误是我在一个新的 Rails 应用程序目录中,但我创建了一个新堆栈,我的错。此外,关于插件的警告是因为插件文件夹中的任何文件都必须是合法插件。我从 git 中删除了该文件,警告消失了。感谢您的帮助。
  • 上面的评论应该说“但是我没有创建了一个新的堆栈。”一旦我在 Heroku 上为我的新 Rails 应用程序创建了一个新的 cedar 堆栈,一切正常。
猜你喜欢
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2018-07-07
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
相关资源
最近更新 更多