2017-03-26 19 views
0

我做了一个简单的rails网站,推送到git并通过heroku进行部署。唯一显示的页面是主页。这里是路线文件。为什么只有在我的网站上显示部署在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 

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

+0

运行“heroku logs --tail”然后查看该页面,它应该向您显示终端中的错误,如果您可以' t调试,然后粘贴部分日志,第一个10-20行应该没问题。 –

+0

@RockwellRice。 “heroku日志 - 尾巴”的第几行结果 – Owen

+0

我想你的应用程序很好,现在的网址是“/ handm/about”而不是“/ about”,我敢打赌你就是在看什么。这是对的?http://afternoon-tor-17057.herokuapp.com/handm/about。 –

回答

0

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

这条路线

get 'handm/about' 

在创建一个URL your_app_name/handm /约

如果你只是想your_app_name /约,这是在导航栏的链接,然后将其更改为这在你的路由文件中。

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

这样做是什么名字的路线/约并将其与“到:handm#关于”指向您的控制器和动作。您需要以这种方式切换每个路由,而不是根路径,保持原样。

当你切换时,推到混帐并重新部署到heroku,你的链接应该按原样工作。

+0

路线文件。阅读'about'=>'handm#about'等。在我看到您的答案之前,我遵循另一个海报的建议,但我相信这些都是相同的。它通过将/ about,/ sevices等添加到URL的末尾来改善情况,但页面仍然“不存在”。我遵循的程序是1.更改路线文件。 2,git push origin master“3. git push heroku master。 – Owen

+0

看起来它现在正在工作,记得在html文件中将导航栏中的”home“链接改为”/“而不是”/home.html“。 –

+0

routes file now now changed to read get'about'=>'handm#about'等等。在我看到你的答案之前,我遵循另一个海报的建议,但我相信这些都是等价的。 (EDIT;你在回答这个问题的同时我发布了它) – Owen

0

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

尝试更改get 'handm/about'get 'handm/about', to: 'handm#about'。其他人也一样。希望这可以工作。

+0

这改变了所有不同页面上的网址。即放置/关于,/服务等在URL的末尾。但是页面仍然没有内容。 – Owen

+0

由于root会自动等同于获得'/',因此您需要提供控制器#操作,这就是为什么家庭工作正常以及其他不行。希望这对你有所帮助。现在更改 –

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" } 

创建下列导轨方法:

>> industries_url 

现在将路线的浏览器:

http://www.example.com/industries 

该产品用于初学者的一个非常简单的技术为您提供一切是助手的名字和原始URL。您将获得一个帮助方法(indstries_url),以便在您的应用程序中的任何位置使用link_to

相关问题