2012-10-14 43 views
1

我是一個完全的新手,當談到部署一個站點時,請原諒這個問題的模糊性。在軌道上調試生產服務器(linode)ruby

我跟着ryan bates插曲第337集(https://github.com/railscasts/337-capistrano-recipes)部署我的rails應用程序。我使用Ubuntu 10.04 lts,nginx,獨角獸和capistrano與postgres。

部署後:冷一切似乎建立良好。

但是,當我打我的IP,我的Rails應用程序給了我這個錯誤:

We're sorry, but something went wrong. 

我知道這不是一個非常有用的錯誤消息。我認爲它與數據庫有關,因爲我之前在使用postgresql部署heroku時已經看到了它。

我不知道如何檢查我的日誌文件在linode服務器上,並獲得更多關於如何調試的信息。

任何指導,非常感謝。

謝謝大家提前。

回答

1

我在OpenShift上有類似的問題部署Rails應用程序。

在我的情況下,錯誤是由缺少資產產生的,未在清單文件中定義。

事實證明,它必須做一些資產。我開始挖掘它我發現它是在Rails無法找到您正在尋找的資產時產生的,因爲它們缺失或者它們未被編譯,或者它們未包含在清單中(直接按名稱或間接通過require_tree)。

第一種情況很明顯。你應該將它們包含在你的應用代碼中,或者你應該將它們添加到你的設備中。第二種情況對你來說不應該是個問題,因爲OpenShift會爲你做這件事。但如果您確實遇到問題,請在論壇中搜索有關未編譯資產的問題。

第三種情況有兩種解決方案。有一個正確的,快速的。我需要專家對第二個的看法。它們是:您需要將資產(通常是樣式表和/或某些第三方工具)添加到要在環境application.rb中預編譯的項目列表中。

config.assets.precompile += ['960sm.css'] 

或快速路,我發現,這將普遍適用於所有已資產: 這裏面的config/environments/production.rb

config.assets.compile = true 

設置爲true這樣的設置,這應該解決的問題。

我希望這會有所幫助。我花了兩週的時間來研究同樣的問題。

+1

相似的問題。感謝您的幫助!只需要將config.assets.compile =從false更改爲true即可。 – Benamir

+0

但現在我的twitterbootstrap文件沒有編譯或者其他東西。 Bootstrap不適用於生產。如果你有一個想法如何解決它,你的幫助是非常感謝。 – Benamir

+0

哦!您正在使用'less-rails'。這有點棘手。你能給我詳細的問題嗎? –

2

您需要使用ssh登錄到您的linode服務器並自己查看日誌文件。

這條線從config/deploy.rb文件中Railscast:

set :deploy_to, "/home/#{user}/apps/#{application}" 

告訴你哪個目錄中的Linode服務器上的應用程序部署到。在該目錄中,您應該看到一個名爲shared/log的目錄;你的日誌應該在那裏。

+1

謝謝你的幫助。現在我知道如何調試。我遵循你的道路和上面的道路,他們都讓我回答。 – Benamir

+1

很高興幫助! – dpassage