4
我想链接到Sinatra设置的默认公共目录之外的CSS和JavaScript文件。Sinatra - 多个公共目录
我知道我可以使用set :public
来更改目录,但我想保留默认目录以及其他'public_2'。
有没有办法做到这一点?
我想链接到Sinatra设置的默认公共目录之外的CSS和JavaScript文件。Sinatra - 多个公共目录
我知道我可以使用set :public
来更改目录,但我想保留默认目录以及其他'public_2'。
有没有办法做到这一点?
您可以使用TryStatic
middleware from rack-contrib:
require 'rack/contrib/try_static'
use Rack::TryStatic, :root => 'public_2', :urls => %w[/]
现在public
和public_2
目录都将被搜索匹配请求(public_2
将首先搜索的文件,因为TryStatic
中间件将应用程序前被击中本身)。
Sinatra不允许多个公共目录。为什么你需要2个公共目录是否有特定的原因?有什么逻辑文件驻留在哪个目录(例如1包含图像,其他JavaScript文件,...)?或者你想要某种合并的内容,即一个文件可能驻留在任何2个dirs中,sinatra应该透明地为文件提供服务? – koffeinfrei
我想要插入一些将与主应用程序一起运行的代码,但如果需要也可以移除。目前我包含运行主应用程序中包含的文件所需的文件.rb 我知道我可以简单地将CSS包含在主公用文件夹中,但如果我可以避免这种情况,那不是我想要做的事情。 至于逻辑 - “public_2”文件夹将包含css,images和js目录,就像普通公共目录一样。 – doublesidedstickytape