用python给html里的css及js文件链接自动添加版本号
传统的给文件链接添加版本号的方法是使用gulp-rev,这里提出的解决方案是使用python来替代gulp-rev。
import os
import re
import uuid
import sys def file_extension(path):
return os.path.splitext(path)[1] basePath = sys.argv[1]
if len(sys.argv)==1:
sys.exit() html_list = [] def find_html(path):
files = os.listdir(path=path) for item in files:
abs_path = os.path.join(path, item)
if not os.path.isdir(abs_path) and file_extension(abs_path) == ".html":
html_list.append(abs_path) if (os.path.isdir(abs_path)):
find_html(abs_path) def deal_html(html_list):
for html_path in html_list:
html_file = open(html_path, "r+", encoding='UTF-8')
content = html_file.read()
# print(html_file.read())
# res = re.sub(r'<link (.*) href="(.*)\.css".*>',r'<link \1 href="\2\.css?v=1"\3>',content)
res1 = re.sub(r'<link (.*) href="(.*)\.css.*"(.*)>', lambda x: '<link ' + x.group(1) + ' href="' + x.group(
2) + '.css?v=' + uuid.uuid1().hex + '"' + x.group(3) + '>', content)
res2 = re.sub(r'<script src="(.*)\.js.*"></script>',
lambda x: '<script src="' + x.group(1) + '.js?v=' + uuid.uuid1().hex + '"></script>', res1)
html_file.seek(0)
html_file.truncate()
html_file.write(res2)
html_file.close() if __name__ == '__main__':
find_html(basePath)
deal_html(html_list)
将以上代码另存成auto_version.py文件后,新建auto_version.bat文件,写入以下内容:
python ./auto_version.py "D:\your project dir"
修改好.bat文件里的路径后,双击运行即可。
用python给html里的css及js文件链接自动添加版本号的更多相关文章
- CI框架引入外部css和js文件
首先在项目根目录下建立assets文件夹,在这个文件夹下再建立css和js文件夹分别放置css和js文件 然后,在项目根目录下建立.htaccess文件 内容如下: RewriteEngine on ...
- 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后丢失的问题
ASP.NET MVC4,ASP.NET MVC5中对JS和CSS的引用又做了一次变化,在MVC3中我们这样引用资源文件: <link href="@Url.Content(" ...
- 用JavaScript动态加载CSS和JS文件
本文转载自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/11/14/2248451.html 今天项目中需要用到动态加载 CSS 文件 ...
- asp.net使用httphandler打包多CSS或JS文件以加快页面加载速度
介绍 使用许多小得JS.CSS文件代替一个庞大的JS或CSS文件来让代码获得更好的可维 护性,这是一个很好的实践.但这样做反过来却损失了网站的性能.虽然你应该将你的Javascript代码写在小文件中 ...
- Gulp实现css、js、图片的压缩以及css、js文件的MD5命名
目前做代码压缩合并的工具有很多,诸如gulp,webpack,grunt等等,可以说这些项目构建工具的功能非常之强大:图片压缩.图片转base64.css和js的压缩以及合并,文件的md5重命名 -- ...
- django 解决css,js文件304导致无法加载显示问题
这种情况一般会在windows系统下出现 1.前台.后台如果无法加载css等样式.(建议通过此办法来解决) 这是因为你安装的某些IDE 或者其他更改了注册表导致的系统的注册表\HKEY_CLASSES ...
- MVC 之 解决MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后的丢失
在MVC3中我们这样引用资源文件: <link href="@Url.Content("~/Content/Site.css")" rel="s ...
- JQuery 加载 CSS、JS 文件
JS 方式加载 CSS.JS 文件: //加载 css 文件 function includeCss(filename) { var head = document.getElementsByTagN ...
- CSS 和 JS 文件合并工具
写 CSS 和 JavaScript 的时候, 我们会遇到一个两难的局面: 要么将代码写在一个大文件, 要么将代码分成多个文件. 前者导致文件难以管理, 代码复用性差, 后者则因为需要在载入多个文件令 ...
随机推荐
- Redis基础及入门
一. 什么是 Redis Redis 是一个可基于内存,有着完备的持久化机制并以 Key-Value 形式存储的非关系型数据库.也称为数据结构服务器. 二. Redis 的 ...
- bzoj2151 种树 双向链表+堆
2151: 种树 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 1151 Solved: 613[Submit][Status][Discuss] ...
- RHEL6误安装RHEL7的包导致glibc被升级后系统崩溃处理方法
RHEL6误使用了RHEL7的光盘源,安装了某个RPM包之后,导致glibc被升级,进而导致系统崩溃. [root@rhel65 ~]# yum install ftp Loaded plugin ...
- @EnableAsync @Asnc 以及4种拒绝策略
根据不同的场景,可以选择不同的拒绝策略,如果任务非常重要,线程池队列满了,可以交由调用者线程同步处理. 如果是一些不太重要日志,可以直接丢弃掉. 如果一些可以丢弃,但是又需要知道被丢弃了,可以使用Th ...
- JavaScript原生拖放API入门总结
一.背景 最早实现JavaScript拖放功能的是IE4的浏览器了.在当时,网页中只有图像和文本才能够进行拖放.IE5之后,拖放功能得到了扩展,形成了一个API(应用程序编程接口),使得几乎任何的标签 ...
- Ubuntu 11.04 NFS 配置
安装 NFS 相关组件 sudo apt-get install nfs-kernel-server 增加 NFS 目录 sudo gedit /etc/exports #在文件中添加如下内容 /va ...
- ap module omap4460
http://gitorious.org/ap-module-omap4460 Dashboard Register Login Activities Projects Teams ap module ...
- 关于编译FFMPEG的初级教程
首先我们要下载相关工具,这里不多说,大家按照我的地址去下载文件就好了 MINGW下载地址:http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1. ...
- Microsoft+R:Microsoft R Open (MRO)安装和多核运作
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本文转载于公众号大猫的R语言课堂,公众号作者使 ...
- R语言︱文本挖掘套餐包之——XML+SnowballC+tm包
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言︱文本挖掘套餐包之--XML+tm+Sn ...