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

如何为Ruby WEBrick命令行添加Header及自定义MIME类型配置

自定义Ruby测试Web服务器:添加MIME类型与Expires头

我太懂这种需求了——用ruby -run -e httpd . -p 8888搭测试服务器快得飞起,但想加些自定义功能又不想碰系统Ruby文件,还没怎么学过Ruby?别担心,下面给你一套直接复制粘贴就能用的方案,不用深入理解Ruby也能搞定。

第一步:创建自定义服务器脚本

新建一个名为custom_httpd.rb的文件,把下面的代码复制进去:

require 'webrick'
require 'webrick/httpservlet/filehandler'

# 自定义文件处理器,自动添加Expires响应头
class CustomFileHandler < WEBrick::HTTPServlet::FileHandler
  def do_GET(req, res)
    # 先执行默认的文件处理逻辑
    super
    # 设置Expires头为当前时间1小时后,可按需修改
    res['Expires'] = (Time.now + 3600).httpdate
  end
end

# 初始化服务器,指定端口和根目录(当前目录)
server = WEBrick::HTTPServer.new(
  Port: 8888,
  DocumentRoot: Dir.pwd
)

# 添加自定义MIME类型——这里是示例,你可以按需添加/修改
server.config[:MimeTypes]['.webm'] = 'video/webm'
server.config[:MimeTypes]['.json'] = 'application/json'
server.config[:MimeTypes]['.svg'] = 'image/svg+xml'

# 替换默认的文件处理器为我们自定义的版本
server.mount('/', CustomFileHandler, Dir.pwd)

# 处理Ctrl+C中断,优雅关闭服务器
trap('INT') { server.shutdown }

# 启动服务器
server.start

第二步:按需调整配置

  • 修改Expires时间:把代码里的3600改成你需要的秒数,比如7天就是7*24*3600,也可以直接写固定时间Time.parse('2024-12-31').httpdate。
  • 添加更多MIME类型:在server.config[:MimeTypes]区块里继续加行即可,格式统一为'扩展名' => 'MIME类型'。

第三步:启动自定义服务器

在终端里运行:

ruby custom_httpd.rb

之后访问localhost:8888就可以了——和原来的命令体验一致,但现在服务器会自动给请求的文件加上Expires头,同时使用你自定义的MIME类型,完全不用碰系统Ruby文件~

内容的提问来源于stack exchange,提问作者Guntram Blohm

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:50:14