每次更改我的Rails代码时,我都必须重新启动Apache

我正在用Apache和Passenger运行Rails 3。 自从我从Mongrel切换到Passenger后,我发现每次更改代码时都必须重新启动Apache。 这是预期的行为? 避免这个问题在开发中使用Mongrel是唯一的方法吗?

假设你必须重新启动Apache,即使对于model / view / controller代码,看起来好像你已经设置Passenger在生产环境中运行你的应用程序。 您可以通过将RailsEnv development附加到您的虚拟主机来解决此问题。

一些代码将要求你重新启动应用程序 – 这个例子是config/initializersvendor任何东西。

有一种方法只重新启动应用程序 (而不是整个服务器),这只是touch tmp/restart.txt 。 这将更新tmp/restart.txt的时间戳,这将触发乘客重新启动应用程序。

另外,你可以touch tmp/always_restart.txt 。 这将告诉Passenger在每次页面加载时重新启动应用程序。 如果您正在处理需要重新启动的部分(如上面提到的示例),这可能很有用。 要停止自动重新启动,您必须删除文件,如下所示: rm tmp/always_restart.txt

您也可以使用独立模式在开发中自行使用乘客。 从您的项目目录中输入

乘客启动