CN106372130B - 一种静态资源管理方法 - Google Patents

一种静态资源管理方法 Download PDF

Info

Publication number
CN106372130B
CN106372130B CN201610722866.2A CN201610722866A CN106372130B CN 106372130 B CN106372130 B CN 106372130B CN 201610722866 A CN201610722866 A CN 201610722866A CN 106372130 B CN106372130 B CN 106372130B
Authority
CN
China
Prior art keywords
file
resource
path
resource file
timestamp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610722866.2A
Other languages
English (en)
Other versions
CN106372130A (zh
Inventor
黄亮
曹政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Yi Ling Network Technology Co Ltd
Original Assignee
Xiamen Yi Ling Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Yi Ling Network Technology Co Ltd filed Critical Xiamen Yi Ling Network Technology Co Ltd
Priority to CN201610722866.2A priority Critical patent/CN106372130B/zh
Publication of CN106372130A publication Critical patent/CN106372130A/zh
Application granted granted Critical
Publication of CN106372130B publication Critical patent/CN106372130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种静态资源管理方法,包括以下步骤:S01:确定资源文件的目录路径,并确定需要合并控制的资源文件路径和深度;S02:遍历资源文件目录,获取资源文件最后修改时间的时间戳或获取资源文件所在子目录的最后修改时间的时间戳,并和对应的文件路径或子目录路径关联;S03:将时间戳转换为文件版本号,再通过文件版本号与上述对应的文件路径或子目录路径关联生成版本控制文件,并对版本控制文件进行存储;S04:调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号;S05:将版本号更新到最终输出的html的资源路径内。本发明调用资源时,通过查找每个资源文件各自的版本号,实现了精确更新。

Description

一种静态资源管理方法
技术领域
本发明涉及一种静态资源管理方法。
背景技术
随着互联网行业的发展,网页内容所提供的信息日渐丰富,网页上所展示的数据内容也随之越来越丰富。在网页开发过程中,通常需要链接一些静态资源(StaticResource),例如JavaScript脚本文件、层叠样式表(Cascading Style Sheets,CSS)资源或图片等。为了提高用户访问带有图片等资源的网页的速度,通常需要对图片等静态资源进行强缓存,以便用户可以直接读取浏览器的缓存中的静态资源。当链接的图片等资源对应的文件发生修改时,则需要通知浏览器更新修改后的文件。现有技术中通常通过在引用静态资源标识的位置添加文件的统一版本号来更新链接的文件,但是当文件发生修改后,使用统一的版本号,会带来大量无谓的刷新,比如修改了一千个资源中的一个,也需要更新全部的资源,使用不方便。
发明内容
本发明的目的在于提供一种静态资源管理方法,以实现资源的精准刷新,且增加一个集合路径,大幅度减少了需要维护的文件版本号的数量。
为了实现上述目的,本发明采用的技术方案为:
一种静态资源管理方法,包括以下步骤:
S01:确定资源文件的目录路径,并确定需要合并控制的资源文件路径和深度;
S02:遍历资源文件目录,获取资源文件最后修改时间的时间戳或获取资源文件所在子目录的最后修改时间的时间戳,并和对应的文件路径或子目录路径关联;
S03:将时间戳转换为文件版本号,再通过文件版本号与上述对应的文件路径或子目录路径关联生成版本控制文件,并对版本控制文件进行存储;
S04:调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号;
S05:将版本号更新到最终输出的html的资源路径内。
所述步骤S01中确定需要合并控制的资源文件路径和深度,是通过配置文件中指定的需要合并控制的子目录路径和层级深度来进行确定。
所述步骤S02中资源文件目录包括单个文件目录和合并文件目录。
所述步骤S02中遍历资源文件目录,若遍历匹配到合并文件目录,则停止匹配,获取资源文件所在的子目录修改时间的时间戳,若遍历匹配到单个文件目录,则获取单个文件目录相对应的资源文件的最后修改时间的时间戳。
所述步骤S03中将时间戳转换为文件版本号,其中,时间戳进行转换是将时间戳转换为32进制字符串或64进制字符串。
所述步骤S04中调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号,进一步包括以下步骤:
S041:将该调用资源文件的完整文件路径与版本控制文件的文件路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S042;
S042:将该调用资源文件的子目录路径与版本控制文件的子目录路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S043;
S043:将该调用资源文件的子目录路径逐层往上,进行匹配需要调用的资源文件,直到根目录仍未匹配到,则将版本号置空。
本发明的一种静态资源管理方法,通过获取资源文件最后修改时间的时间戳或获取资源文件所在子目录最后修改时间的时间戳,将时间戳转换为相应的版本号,调用资源文件时,再获取相应的版本号,使得资源文件被修改时,其获取的版本号也随之变化,实现资源的刷新,不会受浏览器缓存机制的影响,且通过合并控制资源文件路径和深度,增加一个集合路径,对指定的集合目录,不再生成每个文件的版本号,而是生成一个公用的版本号,大幅度减少了需要维护的文件版本号的数量。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明方法流程图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明提供一种静态资源管理方法,包括以下步骤:
S01:确定资源文件的目录路径,并确定需要合并控制的资源文件路径和深度;
S02:遍历资源文件目录,获取资源文件最后修改时间的时间戳或获取资源文件所在子目录的最后修改时间的时间戳,并和对应的文件路径或子目录路径关联;
S03:将时间戳转换为文件版本号,再通过文件版本号与上述对应的文件路径或子目录路径关联生成版本控制文件,并对版本控制文件进行存储;
S04:调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号;
S05:将版本号更新到最终输出的html的资源路径内。
所述步骤S01中确定需要合并控制的资源文件路径和深度,是通过配置文件中指定的需要合并控制的子目录路径和层级深度来进行确定。
所述步骤S02中资源文件目录包括单个文件目录和合并文件目录。
所述步骤S02中遍历资源文件目录,若遍历匹配到合并文件目录,则停止匹配,获取资源文件所在的子目录修改时间的时间戳,若遍历匹配到单个文件目录,则获取单个文件目录相对应的资源文件的最后修改时间的时间戳。
为了减小版本号的长度,所述步骤S03中将时间戳转换为文件版本号,其中,时间戳进行转换是将时间戳转换为32进制字符串或64进制字符串。
所述步骤S04中调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号,进一步包括以下步骤:
S041:将该调用资源文件的完整文件路径与版本控制文件的文件路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S042;
S042:将该调用资源文件的子目录路径与版本控制文件的子目录路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S043;
S043:将该调用资源文件的子目录路径逐层往上,进行匹配需要调用的资源文件,直到根目录仍未匹配到,则将版本号置空。
以下举实施例,进行详细说明:
资源文件目录如下(包括单个文件目录和合并文件目录):
单个文件目录:assets/base/{global.js,style.css};
合并文件目录:
assets/lib/{jquery/{a.js,b.js},bootstrap/{c.css,d.css}};
wrap配置lib=1,即展开深度为1;
生成版本控制文件,版本控制文件是一组键值对,键为文件路径或子目录路径,值为版本号,由于assets/base不在wrap配置中,所以将生成如下版本控制文件:
assets/base/global.js=>modify_time(global.js)
assets/base/style.css=>modify_time(style.css)
其中assets/base/global.js为文件路径,modify_time(global.js)为版本号,同样的,assets/base/style.css为文件路径,modify_time(style.css)为版本号。
而lib在wrap配置中,且展开深度为1,所以向下展开一层,所以将生成如下版本控制文件:
assets/lib/jquery=>modify_time(jquery)
assets/lib/bootstrap=>modify_time(bootstrap)
此时,assets/lib/jquery为子目录路径,modify_time(jquery)为版本号;同样的assets/lib/bootstrap为子目录路径,modify_time(bootstrap)版本号。
当需要调用资源文件global.js时,由于其完整文件路径“assets/base/global.js”在版本控制文件中能匹配,所以直接获取版本号modify_time(global.js);当需要引用juery/a.js时,由于其完整文件路径“assets/lib/jquery/a.js”在版本控制文件中不存在,所以第一次匹配失败,进而使用其子目录路径“assets/lib/jquery”进行匹配,第二次匹配成功,获取对应版本号modify_time(jquery)。
本发明的一种静态资源管理方法,通过获取资源文件最后修改时间的时间戳或获取资源文件所在子目录最后修改时间的时间戳,将时间戳转换为相应的版本号,调用资源文件时,再获取相应的版本号,使得资源文件被修改时,其获取的版本号也随之变化,实现资源的刷新,不会受浏览器缓存机制的影响,且通过合并控制资源文件路径和深度,增加一个集合路径,对指定的集合目录,不再生成每个文件的版本号,而是生成一个公用的版本号,大幅度减少了需要维护的文件版本号的数量。
上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (5)

1.一种静态资源管理方法,其特征在于,包括以下步骤:
S01:确定资源文件的目录路径,并确定需要合并控制的资源文件路径和深度;
S02:遍历资源文件目录,获取资源文件最后修改时间的时间戳或获取资源文件所在子目录的最后修改时间的时间戳,并和对应的文件路径或子目录路径关联;
S03:将时间戳转换为文件版本号,再通过文件版本号与上述对应的文件路径或子目录路径关联生成版本控制文件,并对版本控制文件进行存储;
S04:调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号;
S05:将版本号更新到最终输出的html的资源路径内;
所述步骤S04中调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号,进一步包括以下步骤:
S041:将该调用资源文件的完整文件路径与版本控制文件的文件路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S042;
S042:将该调用资源文件的子目录路径与版本控制文件的子目录路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S043;
S043:将该调用资源文件的子目录路径逐层往上,进行匹配需要调用的资源文件,直到根目录仍未匹配到,则将版本号置空。
2.根据权利要求1所述的一种静态资源管理方法,其特征在于:所述步骤S01中确定需要合并控制的资源文件路径和深度,是通过配置文件中指定的需要合并控制的子目录路径和层级深度来进行确定。
3.根据权利要求2所述的一种静态资源管理方法,其特征在于:所述步骤S02中资源文件目录包括单个文件目录和合并文件目录。
4.根据权利要求3所述的一种静态资源管理方法,其特征在于:所述步骤S02中遍历资源文件目录,若遍历匹配到合并文件目录,则停止匹配,获取资源文件所在的子目录修改时间的时间戳,若遍历匹配到单个文件目录,则获取单个文件目录相对应的资源文件的最后修改时间的时间戳。
5.根据权利要求1或4所述的一种静态资源管理方法,其特征在于:所述步骤S03中将时间戳转换为文件版本号,其中,时间戳进行转换是将时间戳转换为32进制字符串或64进制字符串。
CN201610722866.2A 2016-08-25 2016-08-25 一种静态资源管理方法 Active CN106372130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610722866.2A CN106372130B (zh) 2016-08-25 2016-08-25 一种静态资源管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610722866.2A CN106372130B (zh) 2016-08-25 2016-08-25 一种静态资源管理方法

Publications (2)

Publication Number Publication Date
CN106372130A CN106372130A (zh) 2017-02-01
CN106372130B true CN106372130B (zh) 2019-05-14

Family

ID=57879217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610722866.2A Active CN106372130B (zh) 2016-08-25 2016-08-25 一种静态资源管理方法

Country Status (1)

Country Link
CN (1) CN106372130B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196947B (zh) * 2017-06-08 2020-05-26 苏州浪潮智能科技有限公司 一种访问控制列表设置方法及系统
CN107911459A (zh) * 2017-11-21 2018-04-13 桂林爱家购股份有限公司 一种web页存储装置
CN107992557A (zh) * 2017-11-28 2018-05-04 平安养老保险股份有限公司 静态资源更新方法、装置、存储介质和计算机设备
CN109358895A (zh) * 2017-12-28 2019-02-19 广州Tcl智能家居科技有限公司 一种hxml的部署方法、存储介质及应用服务器
CN108347479B (zh) * 2018-01-26 2020-12-18 政采云有限公司 基于内容分发网络的多仓库静态资源上传方法和系统
CN109445813A (zh) * 2018-09-18 2019-03-08 平安科技(深圳)有限公司 一种文件引用方法及装置
CN111026455B (zh) * 2019-11-27 2023-02-24 掌阅科技股份有限公司 插件生成方法、电子设备及存储介质
CN111552909B (zh) * 2020-05-06 2022-07-05 福建天晴在线互动科技有限公司 一种网站静态资源管理方法及其系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593406A (zh) * 2013-10-17 2014-02-19 北京奇虎科技有限公司 一种静态资源标识处理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160110122A1 (en) * 2014-10-16 2016-04-21 Soteria Systems, Llc Data archiving system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593406A (zh) * 2013-10-17 2014-02-19 北京奇虎科技有限公司 一种静态资源标识处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
gulp下静态资源的合并、压缩、MD5后缀;今天又进步了;《http://www.cnblogs.com/wawahaha/p/4780979.html》;20150903;第1页到第2页
前端开发静态文件自动添加版本号解决方案;yaerfeng;《https://blog.csdn.net/yaerfeng/article/details/51704901》;20160618;第1页到第2页

Also Published As

Publication number Publication date
CN106372130A (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
CN106372130B (zh) 一种静态资源管理方法
US10942708B2 (en) Generating web API specification from online documentation
KR102220127B1 (ko) 커스터마이징된 소프트웨어 개발 키트(sdk) 생성을 위한 방법 및 장치
CN102597993B (zh) 利用统一资源标识符管理应用状态信息
CN108287839A (zh) 一种页面加载方法和设备
CN109684607B (zh) Json数据解析方法、装置、计算机设备和存储介质
US20180285330A1 (en) Generating a Document Object Model (DOM) Differential
CN109388766A (zh) 页面加载的方法和装置
CN103502983A (zh) 利用基于DOM的同构来备忘缓存Web浏览计算
CN107122187A (zh) 一种业务系统异构操作系统访问设计方法
CN104182228B (zh) 一种创建网络应用的方法和系统
Yellavula Building RESTful Web services with Go: Learn how to build powerful RESTful APIs with Golang that scale gracefully
Ravulavaru Google Cloud AI Services Quick Start Guide: Build Intelligent Applications with Google Cloud AI Services
CN111723314B (zh) 网页展示方法、装置、电子设备及计算机可读存储介质
Yellavula Hands-On RESTful Web Services with Go: Develop Elegant RESTful APIs with Golang for Microservices and the Cloud
CN107408055B (zh) 代码缓存系统
CN110321510A (zh) 页面渲染方法和系统
CN113408254A (zh) 一种页面表单信息填写方法、装置、设备和可读介质
Mishra et al. Modern tools and current trends in web-development
US20170097990A1 (en) Text-sql relational database
US20230060787A1 (en) System and Method for Real-Time, Dynamic Creation, Delivery, and Use of Customizable Web Applications
CN115202756A (zh) 基于Vue的组件加载方法、系统和电子设备
Deshmukh et al. An Empirical Study of XML Parsers across Applications
CN115080154A (zh) 页面显示方法、装置、存储介质及电子设备
Kozlovičs Efficient model repository for web applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant