簡體   English   中英

Heroku給出了500個錯誤,幾乎沒有信息+資產文件為空[Rails]

[英]Heroku giving 500 error with little information + asset files are empty [Rails]

我剛剛將正在使用的Rails應用程序部署到了Heroku- http: //sports-site.herokuapp.com/。

這是更新的GitHub- https://github.com/adamzerner/sports_site

  1. application-*.cssapplication-*.js在生產中都是空的,但是CSS和JS在開發中可以完美地工作。

  2. 我訪問的幾乎所有頁面(首頁和瘋狂的排名頁面除外)都會給我500錯誤。 而且日志幾乎沒有給我任何信息。 以下是我得到的一切:

    2014-09-09T21:34:09.019757+00:00 heroku[router]: at=info method=GET path="/spurs" host=pure-everglades-8286.herokuapp.com request_id=d6a0348f-db82-4519-844d-d85973c75413 fwd="67.86.210.96" dyno=web.1 connect=1ms service=11ms status=500 bytes=1002 2014-09-09T21:34:09.323769+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=pure-everglades-8286.herokuapp.com request_id=934ea050-cbab-4c26-b925-5bc5f2d16369 fwd="67.86.210.96" dyno=web.1 connect=1ms service=9ms status=500 bytes=858

我該如何解決這兩個問題?

編輯:我認為這兩個問題可能有關。 當我打開Chrome的開發工具並轉到“資源”標簽時,它說:

Failed to load resource: the server responded with a status of 500 (Internal Server Error

<link data-turbolinks-track="true" href="/assets/application-1babc5fe447a141359d73e5a3339663c.css" media="all" rel="stylesheet" />

<script data-turbolinks-track="true" src="/assets/application-f3556e3d9d239b5384897deb4b41e10f.js"></script>

編輯

當我轉到http://sports-site.herokuapp.com/trailblazers/lamarcus_aldridge時,出現此錯誤。

undefined method `name' for nil:NilClass

指這條線

<h1><%= @player.name %> <small><%= link_to "#{@player.team.location} #{@player.team.name}", "/#{@player.team.name.downcase}" %></small></h1>

我不明白為什么會這樣。 我不知道這是在說playernil還是teamnil ,但似乎都不是根據以下控制台輸出得出的:

`2.1.2 :001 > l = Player.where("name like ?", "%lamarcus_aldridge%")[0]
Player Load (14.8ms)  SELECT "players".* FROM "players"  WHERE (name like '%lamarcus_aldridge%')
 => #<Player id: 383, team_id: 29, position_id: 4, position_rank: 2, overall_rank: 6, analysis: "Star player.|\n\tGood size and strengt
.
.
.
2.1.2 :002 > l.name
 => "LaMarcus Aldridge"
2.1.2 :003 > l.team.name
  Team Load (0.4ms)  SELECT  "teams".* FROM "teams"  WHERE "teams"."id" = ? LIMIT 1  [["id", 29]]
 => "Trailblazers"`

您的應用程序加載正常,這意味着您的問題很可能是應用程序內部的一個小問題。

讓我幫您調試:


失誤

由於Heroku是平台即服務 ,因此它將向您顯示兩種類型的錯誤-

  1. 平台(“ Heroku”)錯誤
  2. 語法(“軌”)錯誤

為了確保您能夠正常工作,您需要了解以下兩種類型的錯誤以及如何解決它們:

--

Heroku

在此處輸入圖片說明

這是一個Heroku錯誤-由Heroku平台本身的問題引起。 如果出現此錯誤,則意味着您的應用程序將完全無法運行,因為Heroku出現了問題。 這里可能的問題是Heroku沒有正確的數據庫/配置憑據,從而阻止了它加載您的應用程序

如果出現Heroku錯誤,則意味着必須正確設置應用程序。 幸運的是,您沒有這個,這意味着您可以專注於下一種錯誤:

--

滑軌

在此處輸入圖片說明

您所遇到的是Rails錯誤。

基本上,這是當您的應用程序在Heroku平台上運行良好,但Rails后端出現問題時。 該問題可能是系統性的(與系統有關),也可能是“語法”的(與您的語法有關)

要解決這些錯誤,您需要確保正確設置了所有文件,依賴項和ENV變量。


固定

查看您的應用程序,可能有一個更深層次的問題需要解決。

我本來以為您的資產有問題,但由於其他頁面也顯示錯誤,因此我們需要確定問題所在。

您可以做的最簡單的事情是為Heroku打開development環境:

#config/environments/production.rb
config.consider_all_requests_local       = true # false

> $ git add .
> $ git commit -a -m "Local Debug"
> $ git push heroku master

調試后必須更改此設置

這將使您能夠實際查看錯誤所在。 我想這可能是控制器問題,還是與數據庫數據有關(也許在推送到Heroku時尚未遷移)等。

如果使用上述方法,請將您的代碼推送到Heroku,您將能夠看到您的應用正在調用的錯誤。 反過來,這將使您可以專門解決問題

到目前為止,我可以為您提供的最好的服務。 如果您更新了我們的問題,我們將為您提供更好的建議!

至於第二個問題,當您更改Rails應用程序環境時,這也會同時更改它連接的數據庫。 因此,首先,您確定要在同一環境下運行應用程序和Rails控制台嗎?

話雖如此,我們將需要查看您的控制器操作(在其中設置@player)。 從控制台粘貼的代碼片段並不意味着您正在控制器中正確執行此操作。

Heroku 500錯誤是標准的Heroku錯誤。 您必須檢查日志以獲取實際錯誤。 下面的鏈接將為您提供有關Heroku記錄在日志中的錯誤的更多信息。 https://devcenter.heroku.com/articles/error-codes

在終端cd中,進入您的應用程序,然后輸入heroku logs --tail這將為您提供實時日志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM