c# - Combres 不在内容上添加 etag,为什么?

标签 c# asp.net-mvc compression etag combres

我刚刚在我的项目中使用了 Combres 库来缩小 css 和 js 文件,并且基本上对页面进行了一些优化。在我读到的所有有关 Combres 的文章中,我都看到它会将 etag 与其优化的资源一起发送,但是当我发布我的项目时,Combres 压缩的资源上没有 etag。我需要进行任何配置才能使其正常工作吗?我正在使用 Windows azure 来部署我的项目(如果重要的话)。

如果您能帮助解决这个问题,我将不胜感激。

最佳答案

您可能通过 Combres 之外的某种方式(例如 http 模块)禁用了 etag。根据您使用的是 IIS6 还是 IIS7.5,有不同的技术可用于删除 etag。有些人在特定场景下在 web.config 中完成了它(我认为对于经典应用程序池)。您可以在 web.config 中搜索“etag”,看看其中是否有任何内容。如果它不在您的 web.config 中,请在您的 Web 项目中搜索“etag”,看看您是否在某个 IHttpModule 中删除它们。

此外,在您花费太多时间在此之前,您可能会考虑忘记 etag。它们有点“过时”并且过时了。我们的想法是,版本化文件的过期日期很长就足够了。如果访问者/用户清除了缓存,则无论如何都不会有任何旧的 etag 可供比较。如果您更新 Combres 资源,它将生成一个新版本路径,该路径也不会与旧缓存文件的 etag 进行比较。因此,无论如何,您确实无法从采用当前技术的 etag 中受益

事实上,许多人不辞辛劳地删除它们,因为它们缺乏用处并且浪费带宽。 (这可能就是您没有它们的原因。您过去可能做过的一些性能调整可能会在可能的情况下禁用它们。)

关于c# - Combres 不在内容上添加 etag,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8218218/

相关文章:

asp.net-mvc - 当模型绑定(bind)包含 bool 时,表单集合必须包含什么字符串值?

java - 分块上传好还是分段压缩上传好

c# - 检查模型与两个不同物体之间是否同时发生碰撞

c# - 如何重命名Azure存储(不是Blob存储)中的文件/目录(不是Blob文件)?

c# - ASP.NET 图表控件和字符编码问题

javascript - 使用jquery单击选择时如何刷新下拉菜单?

c# - ASP.net MVC 发送邮件

c# - 如何验证 X509 证书?

python - 在dynet中,我可以将模型保存在压缩文件中吗?

linux - 拆分大型 gz 文件同时保留行