服务器 运行 作为守护程序时的根路径问题

root path issues when server is run as a daemon

我有几个访问文件系统的视图,以及一些 gem。这似乎工作正常,直到我 运行 服务器作为守护进程。 rails (4.2.3)

例如,在我的一个视图中,我访问了应用程序根目录中的 README 文件

File.read('README.md')

当 运行ning 作为守护程序时,我得到错误 No such file or directory @ rb_sysopen - README.md

错误页面显示 Rails.root 路径,这是正确的。我可以通过以下方式解决此问题:

File.read("#{Rails.root}/README.md")

然而这个问题不仅仅打破了我的观点。 rails 服务器似乎有问题。

这就是守护进程的工作方式 - chdir 到/或另一个工作目录。一些程序允许您为守护进程指定工作目录。例如 puma 服务器默认使用当前目录,因此它可能适合您。