我正在利用ServiceStack
的虚拟文件系统和code-snippet on the wiki来缩短启动时的内容。但是,我没有看到可以在自定义标头中添加的方式,例如Cache-Control
IVirtualPathProvider
等。
我可以使用全球响应过滤器,但是a)我不认为他们使用"静态"文件和b)需要一些粗糙的响应逻辑。
如何在ServiceStack中为{{1}}提供的内容添加标题?
答案 0 :(得分:2)
静态文件由StaticFileHandler提供。它已添加Cache-Control and LastModified headers,如果文件自上次请求后未被修改,则会return a 304。
最新版本的InMemoryVirtualPathProvider
已rewritten维持consistent behavior with the new S3VirtualPathProvider,现在包含StaticFileHandler
可以利用的每个文件的LastModified时间戳。
此更改可从v4.0.47获得,现在为available on MyGet。
您仍然可以通过注册StaticFileHandler.ResponseFilter
来添加自己的自定义HTTP响应标头,例如:
StaticFileHandler.ResponseFilter = (req,res,file) => {
res.AddHeader(headerName, headerValue);
//res.Close(); Closing the Response will stop further processing
};