为什么我的网站上只显示部署在heroku上的主页?

时间:2017-03-26 12:26:42

标签: ruby-on-rails git heroku

我已经创建了一个简单的rails网站并推送到git并通过heroku部署。显示的唯一页面是主页。这是路线文件。

Rails.application.routes.draw do
  root 'handm#home'
  get 'handm/about'
  get 'handm/contact'
  get 'handm/industries'
  get 'handm/languages'
  get 'handm/services'
end

什么可能导致页面"不存在"?谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

您尚未正确定义路线。在获取路线中,您还需要提供控制器和操作。

尝试将get 'handm/about'更改为get 'handm/about', to: 'handm#about'。对其他人也这样做。希望这有效。

答案 1 :(得分:0)

导航栏中的路线和文件中定义的路线不同。

此路线

get 'handm/about'

your_app_name / handm / about

处创建网址

如果您只想要 your_app_name / about ,这是导航栏中的链接,请在路径文件中将其更改为此内容。

get 'about', to: 'handm#about'

这样做的目的是命名路线 / about 并将其指向您的控制器并使用" to:handm#about"。您将需要以这种方式切换每条路线,而不是根路径,保持原样。

当您将其切换时,请按git并重新部署到heroku,您的链接应该按原样运行。

答案 2 :(得分:0)

您的指定路线没有任何问题,您只是没有给他们一个路由器的控制器方法。试试这个:

get 'industries', to: 'handm#industries'

您混淆了以下路线 - 因为它们不相同:

www.herokuapp.com/handm/industries & www.herokuapp.com/industries

请记住,Rails 5.1的新功能是直接路由,它在您应用的路由文件中的工作方式如下:

direct(:industries) { "http://www.example.com/industries" }

创建以下rails方法:

>> industries_url

现在将浏览器路由到:

http://www.example.com/industries

对于初学者来说,这是一种非常简单的技术,因为您提供的是帮助名称和原始URL。您将获得一个帮助方法(indstries_url),可以在您的应用中的任何位置使用link_to