asp.net-mvc – 修改后ASP.NET包缓存不清除

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 修改后ASP.NET包缓存不清除前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ASP.NET MVC4应用程序(我认为)自从一年前首次发布以来,一直在使用 JavaScript和CSS捆绑工作.在此期间,我们发布了许多更新,没有看到脚本传递的问题.

但是,使用我们最新的代码部署,我注意到,服务的JavaScript不是最新的,并且脚本包的请求中使用的querystring参数不会更改,无论底层脚本内容如何更改.

我已经尝试在Visual Studio中重新构建解决方案,并验证修改的脚本文件是否正确部署到服务器.我还明确地回收了IIS应用程序池并重新启动了服务器,但问题仍然存在.

任何想法如何诊断或解决这个问题吗?

更新:刚刚比较了分段和生产服务器,我注意到行为差异.两台服务器以相同的方式部署,使用Visual Studio Web部署.登台服务器通过更新引用脚本包的URL中使用的哈希值,正确立即反映脚本文件的更改.相比之下,生产服务器无法更新其捆绑散列,以响应脚本文件修改和/或更改脚本包的组合(即使在重新启动IIS或回收应用程序池之后).这表明该问题被隔离到生产IIS环境,并且与我的代码更改或Visual Studio配置无关.

解决方法

经过大量的搜索之后,我最终绊倒了这个问题的原因.

服务器检测新部署的JavaScript文件更改的失败是由服务器上存在的这些JavaScript文件的几个类似命名的最小化版本引起的.我假设这种行为是设计的,即捆绑过程优先于现有的最小化文件,并忽略等效的未分解文件,即使它是较新的.

我无法确切地知道这几个最小化的文件是如何在服务器上进行的,但我认为这是一个实验的结果,涉及到一些替代形式的缩小/捆绑.在任何情况下,只需删除它们就允许捆绑机制查看我部署的脚本文件,并且一切都开始工作.

猜你在找的asp.Net相关文章