首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制SquishIt刷新/重新创建缩小的文件

强制SquishIt刷新/重新创建缩小的文件
EN

Stack Overflow用户
提问于 2013-06-12 17:12:21
回答 1查看 1.4K关注 0票数 2

我想把SquishIt和我们的网络应用程序集成起来。我从本地测试中注意到的是,SquishIt只生成一次文件。基于其他答案和读取SquishIt代码,我认为如果HttpCache不包含生成的哈希键的值,就会生成文件。

如果没有重新启动应用程序,或者没有清除HttpCache,如果我删除生成的缩小文件,那么SquishIt就不会重新创建该文件。

如果文件不存在,是否有任何方法强制SquishIt重新创建该文件?

早些时候,我们使用的是RequestReduce,我们注意到如果只编辑css/js文件(即,web.config没有被编辑,应用程序没有重新启动),它并不总是获取css/js的更改。为了确保获取更改,我们总是在部署时删除所有生成的文件。

  1. SquishIt是否总是检测更改的代码,即使web.config没有被修改,应用程序也没有重新启动,HttpCache也没有被清除? BundleCache.Add方法的代码帮助回答了这个问题
  2. 我可以通过简单地删除生成的文件来强制SquishIt生成文件吗? 在考虑了我需要处理的场景之后,这是一个不该问的问题。

编辑:

  1. 这些生成的文件发送给客户端的缓存头是什么?

我的方案如下。我从默认的JS小型机切换到JsMinMinifier。删除文件(设置了RenderOnlyIfOutputFileIsMissing)并重新启动应用程序之后,就生成了缩小的文件。但是,它们的名称与以前的文件相同(我错误地以为它会有不同的名称)。

刷新我的浏览器显示,新生成的文件是服务器发送的。怎么会出这事?如果资产上设置了长时间过期缓存头,那么浏览器就不应该从服务器请求新文件。(检查Firebug中的资产,我无法理解缓存策略。在我看来,它似乎被设置为缓存几分钟)。

编辑2:

我拿走的是,没有必要删除生成的文件,以导致再生。如果相应的源文件发生变化,SquishIt将生成一个适当的文件.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-13 13:34:13

  1. 应该是这样的--我们正在为源文件(而不是生成的源文件)添加缓存依赖项,因此如果其中一个文件被编辑,那么包缓存中的条目应该无效。请参阅BundleCache.Add
  2. 否--一旦一个条目在包缓存中,我们假设输出文件就在那里,因此您将无法找到该文件。这是故意的,我们还没有真正听到一个令人信服的理由来反对它。

但是,在部署时删除生成的文件应该是很好的,即使不是绝对必要的--那么您不需要重新启动应用程序吗?

如果您真的担心文件挥之不去,您可能需要考虑使用没有文件系统的SquishIt

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17071385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档