CN106372130A - 一种静态资源管理方法 - Google Patents
一种静态资源管理方法 Download PDFInfo
- Publication number
- CN106372130A CN106372130A CN201610722866.2A CN201610722866A CN106372130A CN 106372130 A CN106372130 A CN 106372130A CN 201610722866 A CN201610722866 A CN 201610722866A CN 106372130 A CN106372130 A CN 106372130A
- Authority
- CN
- China
- Prior art keywords
- file
- resource
- path
- timestamp
- resource file
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning 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 (6)
1.一种静态资源管理方法,其特征在于,包括以下步骤:
S01:确定资源文件的目录路径,并确定需要合并控制的资源文件路径和深度;
S02:遍历资源文件目录,获取资源文件最后修改时间的时间戳或获取资源文件所在子目录的最后修改时间的时间戳,并和对应的文件路径或子目录路径关联;
S03:将时间戳转换为文件版本号,再通过文件版本号与上述对应的文件路径或子目录路径关联生成版本控制文件,并对版本控制文件进行存储;
S04:调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号;
S05:将版本号更新到最终输出的html的资源路径内。
2.根据权利要求1所述的一种静态资源管理方法,其特征在于:所述步骤S01中确定需要合并控制的资源文件路径和深度,是通过配置文件中指定的需要合并控制的子目录路径和层级深度来进行确定。
3.根据权利要求2所述的一种静态资源管理方法,其特征在于:所述步骤S02中资源文件目录包括单个文件目录和合并文件目录。
4.根据权利要求3所述的一种静态资源管理方法,其特征在于:所述步骤S02中遍历资源文件目录,若遍历匹配到合并文件目录,则停止匹配,获取资源文件所在的子目录修改时间的时间戳,若遍历匹配到单个文件目录,则获取单个文件目录相对应的资源文件的最后修改时间的时间戳。
5.根据权利要求1或4所述的一种静态资源管理方法,其特征在于:所述步骤S03中将时间戳转换为文件版本号,其中,时间戳进行转换是将时间戳转换为32进制字符串或64进制字符串。
6.根据权利要求1所述的一种静态资源管理方法,其特征在于:所述步骤S04中调用资源文件,将该调用资源文件的文件路径与版本控制文件进行匹配,并获取相应的版本号,进一步包括以下步骤:
S041:将该调用资源文件的完整文件路径与版本控制文件的文件路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S042;
S042:将该调用资源文件的子目录路径与版本控制文件的子目录路径进行匹配,若匹配成功,则获取该调用资源文件的版本号,若匹配不成功,则执行步骤S043;
S043:将该调用资源文件的子目录路径逐层往上,进行匹配需要调用的资源文件,直到根目录仍未匹配到,则将版本号置空。
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 true CN106372130A (zh) | 2017-02-01 |
CN106372130B 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) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196947A (zh) * | 2017-06-08 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种访问控制列表设置方法及系统 |
CN107911459A (zh) * | 2017-11-21 | 2018-04-13 | 桂林爱家购股份有限公司 | 一种web页存储装置 |
CN107992557A (zh) * | 2017-11-28 | 2018-05-04 | 平安养老保险股份有限公司 | 静态资源更新方法、装置、存储介质和计算机设备 |
CN108347479A (zh) * | 2018-01-26 | 2018-07-31 | 政采云有限公司 | 基于内容分发网络的多仓库静态资源上传方法和系统 |
CN109358895A (zh) * | 2017-12-28 | 2019-02-19 | 广州Tcl智能家居科技有限公司 | 一种hxml的部署方法、存储介质及应用服务器 |
CN109445813A (zh) * | 2018-09-18 | 2019-03-08 | 平安科技(深圳)有限公司 | 一种文件引用方法及装置 |
CN111026455A (zh) * | 2019-11-27 | 2020-04-17 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN111552909A (zh) * | 2020-05-06 | 2020-08-18 | 福建天晴在线互动科技有限公司 | 一种网站静态资源管理方法及其系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593406A (zh) * | 2013-10-17 | 2014-02-19 | 北京奇虎科技有限公司 | 一种静态资源标识处理方法及装置 |
US20160110122A1 (en) * | 2014-10-16 | 2016-04-21 | Soteria Systems, Llc | Data archiving system and method |
-
2016
- 2016-08-25 CN CN201610722866.2A patent/CN106372130B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593406A (zh) * | 2013-10-17 | 2014-02-19 | 北京奇虎科技有限公司 | 一种静态资源标识处理方法及装置 |
US20160110122A1 (en) * | 2014-10-16 | 2016-04-21 | Soteria Systems, Llc | Data archiving system and method |
Non-Patent Citations (2)
Title |
---|
YAERFENG: "前端开发静态文件自动添加版本号解决方案", 《HTTPS://BLOG.CSDN.NET/YAERFENG/ARTICLE/DETAILS/51704901》 * |
今天又进步了: "gulp下静态资源的合并、压缩、MD5后缀", 《HTTP://WWW.CNBLOGS.COM/WAWAHAHA/P/4780979.HTML》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107196947A (zh) * | 2017-06-08 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种访问控制列表设置方法及系统 |
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的部署方法、存储介质及应用服务器 |
CN108347479A (zh) * | 2018-01-26 | 2018-07-31 | 政采云有限公司 | 基于内容分发网络的多仓库静态资源上传方法和系统 |
CN108347479B (zh) * | 2018-01-26 | 2020-12-18 | 政采云有限公司 | 基于内容分发网络的多仓库静态资源上传方法和系统 |
CN109445813A (zh) * | 2018-09-18 | 2019-03-08 | 平安科技(深圳)有限公司 | 一种文件引用方法及装置 |
CN111026455A (zh) * | 2019-11-27 | 2020-04-17 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN111026455B (zh) * | 2019-11-27 | 2023-02-24 | 掌阅科技股份有限公司 | 插件生成方法、电子设备及存储介质 |
CN111552909A (zh) * | 2020-05-06 | 2020-08-18 | 福建天晴在线互动科技有限公司 | 一种网站静态资源管理方法及其系统 |
CN111552909B (zh) * | 2020-05-06 | 2022-07-05 | 福建天晴在线互动科技有限公司 | 一种网站静态资源管理方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106372130B (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106372130A (zh) | 一种静态资源管理方法 | |
US10409583B2 (en) | Content deployment system having a content publishing engine with a filter module for selectively extracting content items provided from content sources for integration into a specific release and methods for implementing the same | |
US20200264865A1 (en) | Content deployment system having a proxy for continuously providing selected content items to a content publishing engine for integration into a specific release and methods for implementing the same | |
EP3172680B1 (en) | Fast rendering of websites containing dynamic content and stale content | |
US8554800B2 (en) | System, methods and applications for structured document indexing | |
CN106155673B (zh) | 实现页面内容编辑器的方法、装置、服务器及用户设备 | |
CN107766532A (zh) | 一种前端Node.js自动化正静态方法 | |
CA2665404A1 (en) | High-level hypermedia synthesis for adaptive web | |
CA2802746A1 (en) | System and methods for facilitating the synchronization of data | |
CN106873952B (zh) | 移动端网页开发的数据处理系统和方法、及应用装置 | |
CN110309386B (zh) | 一种网页爬取的方法和装置 | |
CN107122187A (zh) | 一种业务系统异构操作系统访问设计方法 | |
CN104375808A (zh) | 界面显示方法及装置 | |
US20140258373A1 (en) | Systems and Methods for Managing and Publishing Managed Content | |
US20230060787A1 (en) | System and Method for Real-Time, Dynamic Creation, Delivery, and Use of Customizable Web Applications | |
Jartarghar et al. | React apps with Server-Side rendering: Next. js | |
Yellavula | Building RESTful Web services with Go: Learn how to build powerful RESTful APIs with Golang that scale gracefully | |
Gottfried et al. | Drawsocket: A browser based system for networked score display | |
Bojinov | RESTful Web API Design with Node. js 10: Learn to create robust RESTful web services with Node. js, MongoDB, and Express. js | |
Mishra et al. | Modern tools and current trends in web-development | |
US10956658B2 (en) | Digital content editing of a document object model (DOM) based on object model comparison | |
CN110321510A (zh) | 页面渲染方法和系统 | |
US11392663B2 (en) | Response based on browser engine | |
CN103678341A (zh) | 数据库交互系统及方法 | |
US20150074510A1 (en) | Transforming a website for dynamic web content management |
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 |