Sinatra - 多个公共目录

ash*_*ash 4 ruby public sinatra

我想链接到Sinatra设置的默认公共目录之外的CSS和JavaScript文件.

我知道我可以set :public用来更改目录,但我想保留默认目录和其他'public_2'.

有没有办法做到这一点?

mat*_*att 5

您可以使用TryStatic来自rack-contrib中间件:

require 'rack/contrib/try_static'

use Rack::TryStatic, :root => 'public_2', :urls => %w[/]
Run Code Online (Sandbox Code Playgroud)

现在将在publicpublic_2目录中搜索与请求匹配的文件(public_2将首先搜索,因为TryStatic中间件将在应用程序本身之前被命中).