asp.net - 支持缓存 VirtualPathProvider 服务内容的 StaticFileHandler

标签 asp.net asp.net-mvc

我有一个可重用的局部 View 、脚本和图像库,这些 View 、脚本和图像嵌入在程序集中并在项目之间共享。

一切正常,我修改了 web.config 以使 System.Web.StaticFileHandler 提供所有必要的文件类型,但不幸的是,它使用 Cache-Control: private 提供所有资源。

我可以编写自己的 StaticFileHandler,它可以使用 Cache-Control: public 和 expiration date 提供 VPP 内容。

如何使用 VirtualPathProvider.GetCacheDependency 实现缓存支持?

最佳答案

我知道为什么会发生这种情况。我查看了 StaticFileHandler 的源代码。对于嵌入文件,它不设置任何缓存头。它仅适用于文件系统中的文件。这意味着这将永远无法正常工作。

你有两个选择。

1.找到另一个 http 处理程序。我从未使用过它,但它出现在我的搜索中:https://code.google.com/p/talifun-web/wiki/StaticFileHandler

2.创建一个http模块,检查是否使用了静态文件处理程序,如果是,请设置缓存详细信息。

祝你好运。

关于asp.net - 支持缓存 VirtualPathProvider 服务内容的 StaticFileHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15714490/

相关文章:

c# - 如何将列表从 View 发送到 Controller MVC

asp.net-mvc - 如何在MVC3中为多行文本框创建多个编辑器模板?

c# - 数据层中的静态变量,通过网络服务

c# - .NET 安全机制限制同一项目中两种类型之间的访问?

asp.net - EF Core 2.0.1 使用 IdentityUser 作为导航属性

asp.net-mvc - 配置 ASP.NET MVC 以针对 AD 进行身份验证

asp.net - 在运行时在 .net Web 表单中缩小 javascript 文件

c# - 使用一个类来更新数据?

c# - 在哪里放置访问数据库的方法

c# - 将错误添加到 ModelState