gpt4 book ai didi

javascript - Requirejs - 版本控制

转载 作者:可可西里 更新时间:2023-11-01 01:53:11 24 4
gpt4 key购买 nike

快速说明 - 我所说的版本控制是指缓存破坏的目的。将查询参数添加到脚本请求末尾的常见做法并不适用于所有浏览器。迄今为止我发现的最简单和最困惑的方法是对我的整个部署文件夹名称进行版本控制。

-- scripts.v1
-- scripts.v2

但这非常困惑,并且也扰乱了部署时间(我使用 S3 作为我的 cdn)。有谁知道替代方法吗?

编辑

看来,我还不是很清楚。让我更明确一点。

我在我的网站上使用 requirejs。这是一个相当重的 JavaScript 应用程序,更新和迭代频繁。现在有了 requirejs,我可以可靠地确保浏览器提供最新版本的唯一方法是对我的整个部署文件夹名称 (javascript) 进行版本控制,然后将所有文件再次上传到 S3。然后我使用 data-main 方法设置项目的基本路径。

出于多种原因,这非常麻烦。即使代码更改只是几行,整个过程也必须重复。是否有其他一些体面的方法让 requirejs 知道文件有版本?比如,如果我调用

require(["superImportantJSFile"], function(){})

它会知道当前版本是 superImportantJSFile.v4.js 或类似的东西。

我希望我现在已经更清楚了。关于社区通常如何做到这一点有什么建议吗?我很确定这一定是一个常见的场景,但我还没有找到一个好的解决方案

最佳答案

我喜欢使用构建后步骤将静态资源放入一个文件夹,该文件夹的路径包含版本控制版本号。例如,源代码控制修订号 1234 将导致创建路径:/1234/scripts/*。这些目录也在 CDN 中创建,其中包含正确版本的 Assets 。

在模板中的 require.js 配置中,我们将 baseURL 替换为适当的修订版,这是通过配置文件控制的,例如:

var require = {
baseUrl: "%%resDir%%",
...
};

这使得更改几个不同版本之间的 Assets 版本变得容易,这些版本都可以保留在 CDN 上而不会引起任何冲突。它还解决了浏览器缓存破坏问题。

关于javascript - Requirejs - 版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17826354/

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