为什么我必须重新启动apache才能在浏览器中正确刷新Ruby on Rails视图?

时间:2009-07-09 23:41:50

标签: ruby-on-rails caching refresh

我正在尝试学习一点Ruby。我在我的Ubuntu机器上安装了Ruby,我使用的是apache。一切正常,除了刷新视图我必须在控制台中重启apache然后点击ctrl-r,只需按ctrl-r就不会刷新浏览器。

显然有一些缓存正在进行,但是它必须是这样的,即它是Ruby on Rails固有的吗?我尝试使用Google搜索,但似乎唯一的答案是安装一些冗长的例程。对于开发而言,这似乎是一种非常繁琐的方式。

5 个答案:

答案 0 :(得分:5)

Apache是​​开发的绝佳选择。

只需安装Passenger(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

答案 1 :(得分:3)

不要将apache用于开发模式。使用脚本/服务器并安装mongrel gem(sudo gem install mongrel)。 Mongrel比WEBrick更快,并将开发日志转储到运行它的控制台。它使发展得体。

答案 2 :(得分:0)

在Rails这样的情况下,Apache不是开发的好选择,因为每次更改代码时都需要重新启动服务器。 Rails附带自己的开发服务器,您可以通过执行(IIRC)脚本/服务器来启动它。它更适合开发,因为它不需要在每次变化后重新启动。

答案 3 :(得分:0)

我正在使用Apache与Passenger(又名模型)进行开发,它在这里运行良好。通过在httpd.conf中设置“RailsEnv development”,确保在开发模式下使用Rails。

答案 4 :(得分:0)

我将Apache与mod_fcgid一起使用。我找到了

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

每次我想重新加载的应用程序都适合我。