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

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

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

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

只需安装Passenger(mod_rails)……并按照说明操作……

我为每个站点设置了它,以便/ etc / hosts包含

127.0.0.1 myapp 

我使用带有类似条目的Apache虚拟主机 – 在/ etc / apache2 / sites-available / myapp中

  ServerName myapp DocumentRoot /path/to/myapp/public RailsEnv development RailsAllowModRewrite off  Order allow,deny Allow from all   

启用并重启

 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 with Passenger(也称为modrails)进行开发,它在这里工作得很好。 通过在httpd.conf中设置“RailsEnv development”,确保在开发模式下使用Rails。

我使用Apache与mod_fcgid。 我发现了

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

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