gpt4 book ai didi

asp.net-mvc - 强制 SquishIt 刷新/重新创建缩小的文件

转载 作者:行者123 更新时间:2023-12-04 04:53:36 25 4
gpt4 key购买 nike

我希望将 SquishIt 与我们的 web 应用程序集成。我从本地测试中注意到,SquishIt 只生成一次文件。根据其他 SO 答案并阅读 SquishIt 代码,我认为如果 HttpCache 不包含生成的散列键的值,则会发生文件生成。

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

如果文件不存在,有没有办法强制 SquishIt 重新创建文件?

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

  • 即使 web.config 没有被修改,应用程序没有重新启动并且 HttpCache 没有被清除,SquishIt 会始终检测到更改的代码吗?

    The [BundleCache.Add] (https://github.com/jetheredge/SquishIt/blob/master/SquishIt.Framework/BundleCache.cs#L40-54) method's code helps answer this question

  • 我可以通过简单地删除生成的文件来强制 SquishIt 生成文件吗?

    After thinking about the scenario I need to handle, this is the wrong question to ask.


  • 编辑:
  • 这些生成的文件发送到客户端的缓存头是什么?

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

    刷新我的浏览器显示新生成的文件是由服务器发送的。这是怎么发生的?如果 Assets 上设置了一个很长的过期缓存 header ,则浏览器不应该从服务器请求新文件。 (检查 Firebug 中的 Assets ,我无法理解缓存策略。对我来说,它看起来像是设置为缓存几分钟)。

    编辑2:

    我的结论是,不需要删除生成的文件来重新生成。如果相应的源文件发生变化,SquishIt 将生成相应的文件。

    最佳答案

  • 它应该 - 我们正在为源文件(而不是生成的文件)添加缓存依赖项,因此如果编辑其中之一,则包缓存中的条目应该无效。见 BundleCache.Add
  • 不 - 一旦一个条目在包缓存中,我们假设输出文件将在那里,所以你最终会找不到文件。这是设计使然,我们还没有真正听到过令人信服的反对它的案例。

  • 部署时删除生成的文件应该没问题,即使不是绝对必要的 - 无论如何你不需要重新启动应用程序吗?

    如果您真的担心文件挥之不去,您可能需要考虑 using SquishIt without the file system

    关于asp.net-mvc - 强制 SquishIt 刷新/重新创建缩小的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17071385/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com