簡體   English   中英

為什么必須重新啟動apache才能正確刷新瀏覽器中的Ruby on Rails視圖?

[英]Why do I have to restart apache to properly refresh a Ruby on Rails view in the browser?

我正在嘗試學習一些Ruby。 我已經在Ubuntu機器上安裝了Ruby,並且正在使用apache。 一切正常,除了刷新視圖外,我必須在控制台中重新啟動apache,然后按ctrl-r,僅按ctrl-r不會刷新瀏覽器。

顯然有一些緩存正在進行,但是是否一定要這樣,即Ruby on Rails是否固有? 我嘗試對此進行谷歌搜索,但似乎唯一的答案是安裝一些冗長的例程。 對於開發而言,這似乎是很乏味的方法。

Apache是​​開發的絕佳選擇。

只需安裝旅客(mod_rails)...並按照說明進行操作...

我為每個站點設置了它,以便/ etc / hosts包含

127.0.0.1 myapp

我在這樣的條目中使用Apache虛擬主機-在/ etc / apache2 / sites-available / myapp中

<VirtualHost *:80>
  ServerName myapp
  DocumentRoot /path/to/myapp/public
  RailsEnv development
  RailsAllowModRewrite off
    <directory "/path/to/myapp/public">
      Order allow,deny
      Allow from all
    </directory>
</VirtualHost>

啟用並重新啟動

sudo a2ensite myapp
sudo /etc/init.d/apache2 restart

這樣,就沒有正在運行的腳本/服務器...它始終以開發人員模式運行-只需將瀏覽器指向http:// myapp

不要將apache用於開發模式。 使用腳本/服務器並安裝mongrel gem(sudo gem install mongrel)。 Mongrel比WEBrick快,並將開發日志轉儲到運行它的控制台中。 它使發展得體。

在諸如Rails這樣的情況下,Apache並不是一個很好的開發選擇,因為您確實需要在每次更改代碼時都重新啟動服務器。 Rails附帶了自己的開發服務器,您可以通過執行(IIRC)腳本/服務器來啟動。 它更適合於開發,因為它不需要每次更改后都重新啟動。

我將Apache與Passenger(aka modrails)一起用於開發目的,在這里工作正常。 只需通過在httpd.conf中設置“ RailsEnv開發”來確保在開發模式下使用Rails。

我將Apache與mod_fcgid一起使用。 我發現

$ touch ${MYAPP}/tmp/restart.txt

每次我希望重新加載應用程序時,對我來說都是有效的。

暫無
暫無

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

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