路径后面加js的版本号。这样是业界比较成熟的作法。(重点)javascript
网上查询资料,纵观你们的解决思路总结以下:css
一、修改js的文件名。我以为这样很麻烦。形成版本系统的维护困难。不建议。除非是彻底ftp。不过每次发布都修改文件名称。的确形成维护的时候很茫然,接手的人看到文件名称变化,会比较难维护html
二、路径后面加时间戳或者随机数的方式。java
通常都是在html模版中使用一个时间戳或者随机数函数生成一个值。程序员
<script type="text/javascript" src="{{passport_host}}js/common.js?t={{date("Y-m-d")}}" ></script> 今天和明天的值不一样了,从新请求服务器。浏览器
<script type="text/javascript" src="{{passport_host}}js/common.js?t={{time()}}" ></script> 使用时间戳,每刷新一次html,值都不一样。随机数也是同样的缓存
不推荐使用这种方式。服务器
由于这样的方式致使的问题是,每次刷新html,时间戳都是变化的,url就老是惟一的,因而浏览器老是去请求服务端获取js文件,不会使用浏览器本地的缓存。占用带宽,影响速度函数
三、路径后面加js的版本号。这样是业界比较成熟的作法。网站
关键是这个版本号,怎么作版本? 难道真的归入版本系统里面去?不是的。我忽然灵感来,想到一种程序员本身控制的办法。
本身主动加时间,若是本次发布,修改了哪几个js文件。那么就在后面加上一个时间点:年月日
若是一天会发布屡次对js文件的修改,那么程序员还要精确点。年月日时分秒便可。
以下:
<script type="text/javascript" src="/js/common.js?time=20150518" ></script>
我去看了一下淘宝,发现也是这样一种方式额,不知道对不对?
以下:
15年8月12日补充:
公司有好几千万注册会员,因而第三方应用使用咱们网站会员账号实如今第三方网站登陆,须要设计oauth2.0受权的平台,因而须要参考微博的oauth体制。
无心中发现他们的css也是使用年月日来控制
进一步思考:
这种加时间方法是可行。。不是系统生成的时间,不是全部js文件都加。
是否是能够进一步考虑一种办法,用程序来进行开关呢?
本身勾选。若是这个文件修改了。那么就设置为更新。模版中判断,就根据这个开关,把时间戳自动打上去?
不过这样子以为不必。由于还没到那么重大。其实初期,彻底能够程序手动把日期打上去便可了。
总结思路:
js文件的内容修改了,能够加个t参数代表一下日期,用这个日期来做为版本号,看到日期也能知道是哪天发布的。
没有修改js文件根本就不用修改日期。
实践:
<script type="text/javascript" src="{{passport_host}}js/common.js?t=20150622" ></script>
若是下一次修改了这个js文件,那么发布的时候,就修改日期
<script type="text/javascript" src="{{passport_host}}js/common.js?t=20150628" ></script>
没有修改的js文件,保留原来的值不动便可。