2012-12-20 56 views
3

我對整個rails部署的事情感到非常困惑。令人困惑的是,在開發整個應用程序時,它一直在development模式下,這很好。現在我將部署它,我有需要對文件進行修改更改 rails應用程序到production模式部署之前,還是部署自動執行此操作?Rails:部署第一個應用程序 - 生產模式

我想我問的是如何從一個環境切換到另一個環境?

回答

5

無需改變你的服務器上只設置shell變量RAILS_ENV=production任何文件

+0

我到底該怎麼做?在終端? –

+1

是的。 '出口RAILS_ENV =生產'。我也建議你不要在生產中使用rails s。嘗試乘客服務器(https://www.phusionpassenger.com/)或其他 –

+0

我運行命令,但沒有得到確認等。我怎麼知道它是否完成? –

2

rails server -e production將讓你在生產模式。

ALSO ...

默認情況下,rails 3.1及更高版本將資產推遲到資產管道。因此,您需要運行rake assets:precompile或打開config/environments/production.rb的服務資產。

# config/environments/production.rb 
config.assets.compile = true 

您還需要確保您的生產數據庫建立正確config/database.yml

以外,你是好去:)

如果這是一個真正的生產中,您還可以設置也是「生產」的環境變量。正如Anatoliy Kukul在另一個答案中解釋的那樣。

+0

嘿mwoods79。你絕對不應該設置config.assets.compile = true。使用rake資源:預編譯。考慮改變你的答案。看到這篇文章:http://stackoverflow.com/questions/8821864/config-assets-compile-true-in-rails-production-why-not – Ben

+0

@我的答案仍然成立。不管這是一個好主意還是另一個對話。經過多年的諮詢,我可以想到至少有兩個這樣做的大型企業應用程序,並且做得很好。這兩款應用程序還將「asset_host」設置爲使用CDN。這是一個偉大的戰略。第一個請求編譯資產並將其存儲在CDN中。之後的所有資產請求都從CDN獲得。很棒。 – mwoods79