2017-04-17 43 views
0

這是我遇到的一個非常奇怪的錯誤。我在軌道上使用紅寶石。一切工作正常(在雲9上),我成功地把它推到Heroku。我已經運行db:migrate沒有錯誤。但是,我收到錯誤「您正在查找的頁面不存在」,並且日誌中顯示404。我檢查了這些文件,並且它們已被正確上傳。 我的路線:Ruby on Rails網站本地工作,路線正確,但在heroku上獲得404

root 'application#index' 
    get '/index/:type' => 'application#index' 
    get '/index/' => 'application#index' 
    get '/benchmark/' => 'application#benchmark' 
    get '/benchmark/:type' => 'application#benchmark' 
    get '/benchmarkupdate/:name' => 'application#benchmark' 
    get '/indexupdate/:name' => 'application#index' 

我在正確的位置的文件。我沒有看到路由問題,並且在本地工作。

Heroku的日誌:

2017-04-18T03:13:14.455398+00:00 app[web.1]: * Version 3.8.2 (ruby 2.3.4-p301), codename: Sassy Salamander 
2017-04-18T03:13:14.455399+00:00 app[web.1]: * Min threads: 5, max threads: 5 
2017-04-18T03:13:14.455399+00:00 app[web.1]: * Environment: production 
2017-04-18T03:13:15.493228+00:00 app[web.1]: DEPRECATION WARNING: `config.serve_static_files` is deprecated and will be removed in Rails 5.1. 
2017-04-18T03:13:15.493241+00:00 app[web.1]: Please use `config.public_file_server.enabled = true` instead. 
2017-04-18T03:13:15.493243+00:00 app[web.1]: (called from block in <top (required)> at /app/config/environments/production.rb:25) 
2017-04-18T03:13:16.337785+00:00 app[web.1]: * Listening on tcp://0.0.0.0:49146 
2017-04-18T03:13:16.337997+00:00 app[web.1]: Use Ctrl-C to stop 
2017-04-18T03:13:16.847301+00:00 heroku[web.1]: State changed from starting to up 
2017-04-18T03:13:18.094441+00:00 heroku[router]: at=info method=GET path="/" host=protected-coast-54392.herokuapp.com request_id=3d8c7a3f-3f40-4747-862f-7e70e7c9029e fwd="152.3.34.25" dyno=web.1 connect=1ms service=75ms status=404 bytes=1744 protocol=https 

是否有其他任何可能導致此問題?

+0

歡迎使用stackoverflow,請將相關代碼和日誌添加到問題本身作爲文本。沒有截圖。在工具欄上是一個'{}''按鈕,將文本格式化爲代碼。 – max

+0

@Xlsaax我沒有看到你的Heroku的日誌堆棧跟蹤或任何那麼有用。是否有像WEBrick錯誤一樣的堆棧跟蹤? –

回答

1

問題是你沒有設置根路由的含義,當有人去www.example.com沒有任何路徑後,他們要去根路由。在你的路由文件中添加類似

root 'application#index' 

或任何控制器和行動,並要人們去當他們第一次訪問您的網站對應的視圖。

+0

在我的路線文件,我已經有根「應用#指數」,但該網站仍無法正常工作;我也試過/基準,/ indexupdate(這是在我的路線)沒有用。我想肯定有一些錯誤的路線,但我真的不能找到任何和它根據您的工作日誌本地 – XIsaax

+0

,缺乏一個根路徑是你的404錯誤的原因。但可能還有其他問題。嘗試加載彪馬寶石。 Webrick並不打算用於生產。 –

0

那麼,一方面,你不應該在生產上運行WEBrick。如果這是導致你的錯誤,我不積極,但我會從那裏開始。

Heroku目前推薦puma

您可以安裝Puma,將它作爲gem 'puma'包含在您的Gemfile中,然後運行軟件包安裝。

在您的項目目錄,您將需要包括Procfile告訴你的應用程序如何運行的Web服務器。

確保Procfile已正確大寫,並簽入git。

它應該是這個樣子:

# <Rails.root>/Procfile 
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development} 

這裏有一個文章關於WEBrick,一個在how to set up puma

您需要重新推送到heroku。看看是否有幫助。乾杯。

+0

看起來像@SteveCarey對我來說是正確的,基於你遇到的錯誤,但我會留下我的答案,因爲你應該在生產中換掉WEBrick! :-) –

+0

嗨,我已經交換到彪馬,但我仍然遇到同樣的錯誤。有沒有可能我的路由文件(這是正確的)不被服務器使用或加載,所以服務器不知道導致錯誤的路由?那可能怎麼樣? – XIsaax

+0

你可以發佈與Puma失敗的日誌嗎? –

相關問題