我已经搜索了解决方案,以及到目前为止我发现的内容:
使用nginx
或iis
直接托管静态内容。它们构建为有效地提供静态文件。
对于NancyFx
,有一个StaticContentConventionBuilder
对于OWIN
应用,有一个StaticFileMiddleware
自定义静态处理程序:根据每个请求(使用旧etag
)从文件系统中流式传输文件,并手动处理etags
,last-modified
和{ {1}}标题。
由于我的限制,我不能(或不想)使用 1-3选项。
我认为选项4 不是很好(请纠正我,如果我错了),因为操作文件系统昂贵。所以我想重新发明轮子并创建高效的静态内容处理程序(在内存中缓存文件内容,观察文件系统等)或找到其他解决方案。
我查看cache-control
中的managing static content和NancyFx
中的StaticFiles的文档和源代码。两者实际上都类似于选项4 。为什么这些方法被认为是有效的?
如何在.NET中有效(自定义)提供静态文件?