Ruby on Rails 应用程序本地目录用于资源的使用

问题描述

我想使用存储在我的服务器下的本地文件(不是在 Rails 的公共目录或项目目录中),就像公共文件夹一样。

为了更简短的说明,我有一个 /home/server/img 文件夹,而我的 Rails 项目的根目录有所不同。我希望能够在我的 Rails 应用程序中使用这些名为“img”的文件夹,就像资源文件一样。

举个例子;

<img src="/home/server/img">

我正在使用 Nginx 来为我的应用提供服务。并且img文件夹是挂载samba共享目录。 谢谢。

解决方法

我找到了我之前提出的问题的解决方案。我一直在寻找的是,我想在我的 Rails 应用程序上使用我的网络服务器下的本地文件。这背后的主要思想是我不想用用户内容填充我的 Web 服务器的存储空间。 因此,我基本上使用以下 script 在我的服务器下创建了一个挂载共享,然后使用 Rails 的 File.open 方法来访问这个挂载目录的内容。

以下函数从我的基于 UNIX 的服务器的任何目录中读取数据,然后通过基本的 HTTP 通信将文件发送到客户端机器。我将此行放在控制器功能下,并在 config/routes.rb 下给出了一个获取路由

  data_file = '/path/to/file'
  data      = File.open(File.expand_path(data_file),'r')

  send_data data.read,filename: "imageName.png",type: "image/png",disposition: 'inline',stream: 'true',buffer_size: '4096'

Here 是解释类似问题答案的另一个来源。