我目前正在开发一个基于Rack 的应用程序,希望将所有文件请求(例如filename.filetype)重定向到指定的文件夹.

Rack::Static仅支持对特殊文件夹(例如"/media")的文件请求.

我是否必须编写自己的Rack 中间件,还是有现成的解决方案?

推荐答案

要将每个请求重定向到特定路径,请使用Rack::File(由于某些原因,最近的文档中没有此类,但它是最新的Rack ):

run Rack::File.new("/my/path")

要重定向每个请求,并在目标目录中添加所有文件的HTML索引,请使用Rack::Directory:

run Rack::Directory.new("/my/path")

要组合多个目录或仅为一个目录提供服务,请执行来自目标目录的一些请求:

map "/url/prefix" do
  run Rack::File.new("/my/path")
end

# More calls to map if necessary...

# All other requests.
run MyApp.new

Ruby相关问答推荐

如何查询哪些RuboCop规则适用于文件?

Ruby 中使用的-S标志是什么?

Rack::Request - 如何获取所有标头?

如何在 ruby​​ 中通过 SSL 调用 HTTP POST 方法?

获取字符串中的最后一个字符

Ruby $:.unshift File.dirname(__FILE__)

在ruby中反转数组的顺序

Ruby |= 赋值运算符

在文件中搜索字符串的最佳方法是什么?

如何用 Ruby 覆盖 shell 中的打印行?

按可能为 nil 的属性对对象的 ruby​​ 数组进行排序

以条件方式构建哈希

Ruby 中方法名称的限制是什么?

Ruby RVM apt-get 更新错误

如何在数组中找到出现次数最多的项目

如何在Ruby中获取给定月份的天数,占年份?

创建一个接受参数散列的 ruby​​ 方法

将哈希传递给函数 ( *args ) 及其含义

如何使用器重新安装 gem

你可以在Ruby中使用分号吗?