如何使用Rack::App提供静态资源服务?
Rack::App public文件夹静态文件服务实现方案
功能开箱支持情况
Rack::App默认不提供开箱即用的public文件夹静态文件服务能力,没有类似Sinatra的默认静态目录加载逻辑。
最简实现方式
推荐直接使用Rack::App内置的serve_static_files配置项,一行代码即可实现和Sinatraset :public_folder, 'public'完全一致的效果,示例如下:
require 'rack/app' class YourApp < Rack::App # 指定静态文件服务的目录为项目根目录下的public文件夹 serve_static_files from: './public' # 其他业务路由定义 get '/hello' do 'ok' end end
如果需要自定义静态文件的路由前缀、缓存规则等更复杂的配置,也可以手动挂载官方Rack::Static中间件实现:
# config.ru 配置文件 require 'rack/app' require 'rack/static' class YourApp < Rack::App # 业务路由 end # 配置静态文件服务,urls参数指定需要走静态服务的路径前缀,root指定静态文件存放根目录 use Rack::Static, urls: ['/css', '/js', '/img'], root: 'public' run YourApp
内容的提问来源于stack exchange,提问作者Alexander Presber
相关产品推荐
相关产品推荐

