2012-01-12 470 views
5

有時,即使安裝了機架,我的rails應用程序也會報錯(無需加載這樣的文件 - 機架)。沒有這樣的文件加載 - rack

[Gemfile中] 寶石 '架', '1.2.1'

如果我刷新頁面,它加載的罰款。 所以這不是寶石問題。 什麼可能導致錯誤?

謝謝。

山姆

回答

4

我認爲,如果你在本地啓動您的網站,這將不會發生。那麼你使用了什麼服務?我在DreamHost上遇到過這樣的錯誤。

對於DreamHost,問題是他們使用不同版本(較舊)的Rack,它與最新版本的Rails不兼容。嘗試在Gemfile中指定Rack版本(並且在大多數情況下,您還必須降級Rails)。它可能有幫助。

另一個可能的原因是您在本地機器上使用RVM,但對於服務器,例如Passenger + Nginx/Apache,RVM可能無法正常工作(實際上,我總是使用Passenger + RVM獲取錯誤)。指定您的Gem目錄可能會有所幫助。

+1

你非常正確。我使用DreamHost VPS。我的開發環境是RVM。另一個奇怪的是,即使我做'捆綁安裝'我的軌道應用程序給了我「沒有這樣的文件加載 - 機架」。我必須手動執行'gem install rack -v 1.2.1'。這可能與我的「捆綁安裝 - 部署」有關。不過,我不確定。 – 2012-01-12 18:17:30

+1

我沒有使用Dreamhost VPS,而是使用DreamHost共享服務器。我認爲VPS將比共享服務器更好。對於共享服務器,我所做的是將這些行添加到config.ru:ENV ['GEM_HOME'] =「#{ENV ['HOME']} /。gems」 ENV ['GEM_PATH'] =「#{ENV [ 'GEM_HOME']}:/ usr/lib/ruby​​/gems/1.8「 require'rubygems' Gem.clear_paths 您可以嘗試一下。它指定了寶石路徑。 – Davidsun 2012-01-13 00:58:01

+0

是的。這解決了問題。謝謝。 – 2012-01-13 20:45:52

相關問題