【问题标题】:root path issues when server is run as a daemon服务器作为守护进程运行时的根路径问题
【发布时间】:2015-06-28 03:30:23
【问题描述】:

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

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

File.read('README.md')

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

错误页面显示 Rails.root 路径,这是正确的。我可以通过这样做来解决这个问题:

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

然而,这个问题不仅仅是我的观点。这似乎是 Rails 服务器的问题。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 daemon


    【解决方案1】:

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

    【讨论】:

    • 是的,我想这更像是一个 Rails 服务器问题,而不是一个守护进程问题。但这是有道理的,一个守护进程应该在不需要上下文的情况下运行。当作为守护进程运行时,有些 gem 会中断,所以我认为这是 gem 的责任。感谢您的澄清!
    猜你喜欢
    • 1970-01-01
    • 2023-03-02
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多