2013-07-18 145 views
37

我注意到,當我更改rails項目文件(如html.erb.css)時,我不必使用rails -s命令重新啓動服務器。我何時需要在Rails中重新啓動服務器?

但我想當我想安裝一個新的寶石我必須。事情是,我試圖讓jQuery工作,所以我厭倦了所有的時間做rails -s

任何人都可以告訴我什麼時候我必須再次運行rails -s當我修改我的應用程序,什麼時候我可以承擔不這樣做?通過不這樣做,我的意思是刷新網頁以查看更改。

+0

可能的重複[如何在開發模式下重新加載每個請求上的寶石?](http://stackoverflow.com/questions/6191635/how-to-reload-a-gem-on-every-request-in -Development-mode) – Nakilon

回答

50

當你需要從一開始重新加載Rails時,你需要重新啓動服務器。

如果你正在添加或刪除寶石,那麼是的,你將需要重新啓動服務器。

如果你改變你的ruby版本,改變你的Gemfile或者改變Rails的內部類,你需要重新啓動它,否則它應該沒問題。但是如果出現意想不到的問題,重新啓動服務器是您應該嘗試的第一件事。

此外,在一個側面說明,你只會看到剛剛刷新如果config.cache_classes設置爲false頁面的變化(我認爲這是發展的默認值,但不用於生產)。

編輯:

只是爲了確保每個人都會注意到,tadman說,在評論,這裏一般的經驗法則一個明智的做法是應用程序/或配置/ routes.rb文件之外更改任何東西或db /將需要重啓。

+2

好的回答:-) +1 –

+8

這裏的一般經驗是對'app /'或'config/routes.rb'之外的任何東西進行更改都需要重新啓動。 – tadman

1

無論何時安裝或更新gem,如果您升級ruby,或者如果您更改某些啓動時運行的邏輯(如config/boot.rb或config/database.yml),您通常都需要重新啓動服務器。 。否則,即使您編輯/添加模型/控制器,通常也不會。

附註:jquery-rails gem使jquery添加到項目很容易。

15

在發展,你需要時重新啓動:

  • 您添加/在你的Gemfile刪除/更新的寶石。
  • 您可以通過rvm對ruby環境進行其他更改。
  • 您更改config/下的任何文件,但routes.rb已爲您重新加載。
  • 您可以手動更改您require的任何文件,而不是自動加載。

在生產需要時重新啓動:

  • 您更改任何代碼或寶石。

N.B.如果需要,可以通過編輯相應的environment/<env>.rb文件來更改這些行爲,但默認值是合理的。

相關問題