本篇内容主要讲解“html是不是静态页面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html是不是静态页面”吧!html是静态页面;html表示结构,c
顺晟科技
2021-06-16 10:57:06
498
前端开发不可避免会遇到缓存问题,那么如何给这些静态自动版本添加版本号,使修改后的内容立即生效呢?先说我找到的两种方法:
原理:通过服务器端语言读取文件的最后修改时间,然后将获得的时间作为版本号。
以php为例:
?php函数Autoversion($ file){ if(file _ exists($ _ SERVER[' DOCUMENT _ ROOT '])。$ file)){ $ ver=file mtime($ _ SERVER[' DOCUMENT _ ROOT ']。$ file);} else { $ ver=1;}返回$file。v='。$ ver}?
使用:
link rel='样式表' href='?=Autoversion(' assets/CSS/style . CSS ')?'type='text/css' /
如果该文件存在,将生成类似如下代码:
link rel='样式表' href='assets/css/style.css?' v=1367936144322 ' type=' text/CSS '/
此外,我们可以考虑缓存生成的静态html。当静态文件通过svn更新时,我们可以通过提交后挂钩执行脚本来更新缓存。
如果您的项目使用gum js自动化构建工具,您可以通过安装gum js的插件来生成版本号。
原理:gruntjs插件通过获取文件的md5值(同一文件的md5值是固定的)生成等格式的json文件,然后通过后台程序读取并处理json文件,以文件的md5值作为文件版本号。
推荐使用插件:
grunt-cachebuster:npmjs.org/package/grunt-cachebuster
这个插件可以指定生成json或php格式的文件:
数据
{ ' path/CSS/filename 1 . CSS ' : ' fa6 a5 a 3224 D7 da 66 d9 E0 bdec 25 f 62 cf 0 ',' path/CSS/filename 2 . CSS ' : ' 5b a48 b 6 E5 a7 C4 d 4930 FD a 256 f 411 e 55 b ',' path/js/filename 1 . js ' : ' 08 e 0484 db 917 D5 c6d 9 a 64863d 38d 88
服务器端编程语言(Professional Hypertext Preprocessor的缩写)
?php/** *生成的文件,请勿编辑。这个文件只是为*项目中的静态资产生成的散列的集合。它是由grunt生成的,详见Gruntfile.js。*/return array(' MD5 '=array(' js/main . js '=' AE 65552d 65 CD 19 ab 4 f 1996 c 77915 ed 42 ',' js/vendor/modernizr-2 . 6 . 2 . min . js '=' b 8009 fa 783 ea 3d e 3802 ef CD 29d 7473d 5 ',' img/BG/about . jpg '=' 7e 402 c 1d 64 f 0 b 00 B4 ade 850 f 9015 '
当然也可以自己定义输出音量的格式。具体用法见官方文件。
此外,还有其他类似的插件:
github.com/ktmud/grunt-hashmap
npmjs.org/package/grunt-hash
npmjs.org/package/grunt-assets-versioning
你可以根据自己的需求选择合适的插件,更多的插件可以从gruntjs的官方插件库中找到。
02
2022-10
15
2022-09
15
2022-09
15
2022-09
15
2022-09
15
2022-09