You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:45:01