当我需要一个可以从某个目录提供一些文件的测试Web服务器时,我真的很喜欢简单的
ruby -run -e httpd . -p 8888
然后浏览到localhost:8888
。
但是,有时我想添加一点点,例如,为特定扩展设置一个特定的mime类型(我可以编辑/usr/lib/ruby/2.3.0/webrick/httputils.rb
,但我宁愿不搞乱系统文件),或添加Expires:
标题。
看起来添加标题并不复杂,例如,查看https://www.thecodingforums.com/threads/setting-expires-http-response-header.822995/。
但是,我对
所以,我要感谢一个回答“将this
放入文件,然后将that
添加到命令行”,并使用this
的复制/可粘贴示例和that
。
答案 0 :(得分:2)
确定。将其放入文件 server.rb 中,例如:
require 'webrick'
class Server < WEBrick::HTTPServer
def service(req, res)
super
one_hour = 60 * 60
t = Time.now.gmtime + one_hour
res['Expires'] = t.strftime("%a, %d %b %Y %H:%M:%S GMT")
end
end
root = File.expand_path('.')
server = Server.new(Port: 8000, DocumentRoot: root)
trap('INT') { server.shutdown } # Ctrl-C to stop
server.start
然后在控制台中运行:
ruby server.rb
它将从当前目录提供文件列表。