Rails 7 - 如何在 Ubuntu 中打开位于磁盘上的文本文件?

问题描述 投票:0回答:1

我正在 Ubuntu 服务器上运行我的 Rails 应用程序。磁盘上文件的结构是这样的:

/home
  /dokku/my-rails-app
  /text-files/txt/my-file.txt

/home/dokku/my-rails-app
中是我的 Rails 应用程序,我想在此应用程序中打开
/home/text-files/txt/my-file.txt
文件。

在我的 Rails 应用程序的视图中,我这样做:

<%= File.read("/home/text-files/txt/my-file.txt") %>

它生成了错误ActionView::Template::Error(没有这样的文件或目录@ rb_sysopen - /home/text-files/txt/my-file.txt):

但是,如果我在开发环境(OSX)中执行相同的方法,它就会起作用并且文件会正确显示。

我还仔细检查了 Ubuntu 上文件的路径是否正确,并且确实如此 - 如果我通过 SSH 连接到终端并运行

cat /home/text-files/txt/my-file.txt
,我会获取文件的内容。

我是否忽略了阻止 Rails 应用程序显示文件内容的某些因素?

ruby-on-rails ubuntu
1个回答
0
投票

您是否检查过您的 Rails 应用程序是否具有该文件的读取权限。您可以通过运行来更改文件的权限:

$ sudo chmod 644 /home/text-files/txt/my-file.txt

文件所有权也值得检查。如果您需要更新它,您可以使用:

sudo chown www-data:www-data /home/text-files/txt/my-file.txt

检查

/var/log/audit/audit.log
如果您有 SELinux 或 AppArmor。访问可能受到限制。

© www.soinside.com 2019 - 2024. All rights reserved.