如何给网站中javascript增加版本号?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何给网站中javascript增加版本号?相关的知识,希望对你有一定的参考价值。

参考技术A 大型网站通常都有一套比较成熟的自动化部署工具。
在项目发布前,使用该工具进行部署代码。工具会自动地帮完成资源压缩、代码打包、添加版本号、解决执行依赖等问题。
给站一个版本号就行了,服务端输出到JS尾部。更新JS的时候,修改下版本号就行了。
参考技术B

一般的做法是在 js 文件的引入路径后面加上 '?+版本号',例如:

<script type="text/javascript" src="js/public.js?v1.2"></script>

如果你是用 webpack 这类打包构建工具的话,配置好时间戳策略,每次 build 时都会自动帮你加上新的时间戳(或版本戳),不用人肉去每个页面加一次了。

如果你是用 seajs 这类模块化加载库,并且做了 alias 配置的话,直接在别名指定的地址后面加版本戳就行。

参考技术C 大型网站通常都有一套比较成熟的自动化部署工具。
在项目发布前,使用该工具进行部署代码。工具会自动地帮你完成资源压缩、代码打包、添加版本号、解决执行依赖等问题。
给站一个版本号就行了,服务端输出到JS尾部。更新JS的时候,修改下版本号就行了。
当然,有开发能力的话,自己使用 ant 或者使用 gruntjs 去做一套自己的自动化工具也行。
参考技术D 该url之后加上?verssion=300 第5个回答  2015-11-02 在引用的js后加?v=1.2.5就可以了:
<link href="http://js.e6gps.com/css/citySel/citySel.css?v=2.1.6" rel="stylesheet">

如何让 Visual Studio 项目的内部版本号增加?

【中文标题】如何让 Visual Studio 项目的内部版本号增加?【英文标题】:How can I get the build number of a Visual Studio project to increment? 【发布时间】:2015-02-17 20:33:45 【问题描述】:

为什么在 Visual Studio 中构建项目不会增加内部版本号?

我在 AssemblyInfo.cs 中有这个:

[assembly: AssemblyVersion("1.5.*")]

...frmAbout 的构造函数中的 this:

Version versionInfo = Assembly.GetExecutingAssembly().GetName().Version;
String versionStr = String.Format("0.1.2.3", versionInfo.Major.ToString(), versionInfo.Minor.ToString(), versionInfo.Build.ToString(), versionInfo.Revision.ToString());
lblVersion.Text = String.Format("Version 0", versionStr);

然而,在更改代码并构建项目(右键单击项目名称 > 构建)后,versionInfo 的构建部分并未增加。 “关于”框中的标签来自:

Version 1.5.5465.25383

...到:

Version 1.5.5465.25999

为什么内部版本号没有从 5465 增加到 5466?为什么“修订版”会跳 616 个档次?后者只是一个随机值,还是源中已更改的字节数,还是什么?

那么我怎样才能让内部版本号实际增加呢?

更新

是的,razcor 是对的,因为它显示“5465”(今天,YMWV 之后的任何一天):

DateTime startDate = new DateTime(2000, 1, 1);
DateTime todaysDate = DateTime.Today;
int diffDays = (todaysDate.Date - startDate.Date).Days;
MessageBox.Show(diffDays.ToString());

并且,知道内部版本号(例如 5465),可以计算并显示构建日期:

DateTime computedDate = startDate.AddDays(diffDays);
MessageBox.Show(computedDate.ToLongDateString()); // shows today's date (such as what it is today, namely: "Thursday, December 18, 2014")

【问题讨论】:

我什至不知道VS中有这样的功能,感谢您启发我:-)。 【参考方案1】:

当您将“0”替换为“*”版本号时,修订号会自动增加,但不会以您(和我)想像的方式。此自动增量的规则是:内部版本号是自 1.1.2000 以来的天数,修订版是自午夜以来的秒数除以 2。

【讨论】:

这太疯狂了,如果是真的(或者即使不是)!因此,如果我周一进行构建,它将是 5469,但即使我当天再进行 50 次构建,构建编号也不会增加到 5470,直到周二进行构建 - 或者它甚至需要是一个新构建?你可能是对的,但正如我所说,这太疯狂了。想出这种方法/逻辑的猫简直是疯了! 这种古怪的好处是您可以推断/计算构建日期。不过,在我看来更好的是,将 Revision 设置为日期值,并且 Build 号实际上应该随着每次构建而增加(或者用 Jiminy 将其命名为其他名称!)

以上是关于如何给网站中javascript增加版本号?的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何使用 Fastlane 增加版本号?

如何在 Azure Pipelines 中自动增加 Xamarin Android 内部版本号和版本号?

如何在 shell 脚本中增加版本号?

如何使用脚本增加浮动版本号

如何让 Visual Studio 项目的内部版本号增加?

Fastlane 根据试飞中先前的内部版本号增加内部版本号