一种静态资源更新方法及系统与流程

文档序号:15201493发布日期:2018-08-19 12:40阅读:185来源:国知局

本发明涉及静态资源更新技术领域,尤其涉及一种静态资源更新方法及系统。



背景技术:

当前随着web站点的发布频率逐渐提高,站点静态资源数量随业务扩展不断增加的情况下,每次更新静态资源,均需开发者手动更新改动了的静态资源版本号,同时,静态资源的不断增加,也降低了发布过程的速度。

现有的静态资源更新方案,包括:正则匹配出html中静态资源的路径,在其访问路径后加上search字段,以保证线上站点访问到最新的静态资源,发布过程为全量发布,即无论文件是否改动,均覆盖式发布。

现有的静态资源更新方案,无法解决css文件中图片资源的更新问题,需开发中手动更新其版本号,同时发布时,全量发布,导致发布速度缓慢。



技术实现要素:

本发明提供一种静态资源更新方法及系统,用以解决技术无法解决css文件中图片资源的更新问题,需开发中手动更新其版本号,同时发布时,全量发布,导致发布速度缓慢的技术问题。

为解决上述技术问题,本发明提供一种静态资源更新方法,其特征在于,包括:

对静态资源进行打包;

对引用的打包后的静态资源的路径hash化;

收集预设时间内的hash发生变化的所述静态资源;

将html文件上传至服务器,静态资源上传至腾讯云。

其中,所述对静态资源进行打包,包括:

复制目标静态资源至工作目录,对所述工作目录中的静态资源进行打包。

其中,所述复制目标静态资源至工作目录,对所述工作目录中的静态资源进行打包,包括:

采用记忆性方式复制目标静态资源至工作目录,采用webpack的方式对所述工作目录中的静态资源进行打包。

其中,所述对引用的打包后的静态资源的路径hash化,包括:

第一步,先获取出css文件中引用的图片媒体资源,找到对应图片资源的绝对路径并获取其hash值,并重命名为[name]-[hash].ext,同时修改所述资源在css文件中的路径为cos路径/[name]-[hash].[ext];

第二步,获取html中的静态资源路径,包括图片、js、css资源,根据其路径获取绝对路径并计算出hash,步骤同第一步;

在第一步及第二步中,对于路径hash化的静态资源,以map的方式保存期路径,key为hash值,路径为value值,以日期为文件名,保存至文件中。

其中,所述对引用的打包后的静态资源的路径hash化,还包括:

保存已hash与静态资源的路径的对应关系,且按日期保存在文件中,通过比较不同日期的文件,得到hash值存在差异的数据项,获取增量的文件路径,并拷贝至待压缩目录,供发布时使用。

为解决上述技术问题,本发明还提供一种静态资源更新系统,包括:

打包单元、hash化单元、收集单元、上传单元。

所述打包单元,用于对静态资源进行打包;

所述hash化单元,用于对引用的打包后的静态资源的路径hash化;

所述收集单元,用于收集预设时间内的hash发生变化的所述静态资源;

所述上传单元,用于将html文件上传至服务器,静态资源上传至腾讯云。

其中,所述打包单元,用于对静态资源进行打包,包括:

所述打包单元,用于复制目标静态资源至工作目录,对所述工作目录中的静态资源进行打包。

其中,所述打包单元,用于复制目标静态资源至工作目录,对所述工作目录中的静态资源进行打包,包括:

所述打包单元,用于采用记忆性方式复制目标静态资源至工作目录,采用webpack的方式对所述工作目录中的静态资源进行打包。

其中,所述hash化单元,用于对引用的打包后的静态资源的路径hash化,包括:

所述hash化单元,用于第一步,先获取出css文件中引用的图片媒体资源,找到对应图片资源的绝对路径并获取其hash值,并重命名为[name]-[hash].ext,同时修改所述资源在css文件中的路径为cos路径/[name]-[hash].[ext];

第二步,获取html中的静态资源路径,包括图片、js、css资源,根据其路径获取绝对路径并计算出hash,步骤同第一步;

在第一步及第二步中,对于路径hash化的静态资源,以map的方式保存期路径,key为hash值,路径为value值,以日期为文件名,保存至文件中。

其中,所述hash化单元,用于对引用的打包后的静态资源的路径hash化,还包括:

所述hash化单元,用于保存已hash与静态资源的路径的对应关系,且按日期保存在文件中,通过比较不同日期的文件,得到hash值存在差异的数据项,获取增量的文件路径,并拷贝至待压缩目录,供发布时使用。

本发明提供的静态资源更新方法,包括:对静态资源进行打包,对引用的打包后的静态资源的路径hash化,收集预设时间内的hash发生变化的该静态资源,将html文件上传至服务器,静态资源上传至腾讯云,从而达到实现在不对源代码产生影响的前提下完成打包,发布,避免了代码库中文件版本发生冲突带来的影响,同时增量发布,仅仅发布新加入的文件,大大提升发布速度,同时,今天资源在线上的多版本共存,保证了在发布过程中,静态资源始终能被访问到,提供站点的可用性。

本发明提供的静态资源更新系统,包括:打包单元、hash化单元、收集单元、上传单元;打包单元,用于对静态资源进行打包,hash化单元,用于对引用的打包后的静态资源的路径hash化,收集单元,用于收集预设时间内的hash发生变化的该静态资源,上传单元,用于将html文件上传至服务器,静态资源上传至腾讯云,从而达到实现在不对源代码产生影响的前提下完成打包,发布,避免了代码库中文件版本发生冲突带来的影响,同时增量发布,仅仅发布新加入的文件,大大提升发布速度,同时,今天资源在线上的多版本共存,保证了在发布过程中,静态资源始终能被访问到,提供站点的可用性。

附图说明

图1为本发明静态资源更新方法的流程示意图;

图2为本发明静态资源更新系统的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明提供一种静态资源更新方法。

请参见图1,图1为本发明静态资源更新方法的流程示意图,本发明静态资源更新方法,包括:

s101:对静态资源进行打包。

s102:对引用的打包后的静态资源的路径hash化。

s103:收集预设时间内的hash发生变化的该静态资源。

s104:将html文件上传至服务器,静态资源上传至腾讯云。

其中,对静态资源进行打包,包括:

复制目标静态资源至工作目录,对该工作目录中的静态资源进行打包。

其中,复制目标静态资源至工作目录,对该工作目录中的静态资源进行打包,包括:

采用记忆性方式复制目标静态资源至工作目录,采用webpack的方式对该工作目录中的静态资源进行打包。

其中,对引用的打包后的静态资源的路径hash化,包括:

第一步,先获取出css文件中引用的图片媒体资源,找到对应图片资源的绝对路径并获取其hash值,并重命名为[name]-[hash].ext,同时修改该资源在css文件中的路径为cos路径/[name]-[hash].[ext];

第二步,获取html中的静态资源路径,包括图片、js、css等资源,根据其路径获取绝对路径并计算出hash,步骤同第一步;

在第一步及第二步中,对于路径hash化的静态资源,以map的方式保存期路径,key为hash值,路径为value值,以日期为文件名,保存至文件中。

其中,对引用的打包后的静态资源的路径hash化,还包括:

保存已hash与静态资源的路径的对应关系,且按日期保存在文件中,通过比较不同日期的文件,得到hash值存在差异的数据项,获取增量的文件路径,并拷贝至待压缩目录,供发布时使用。

本发明还提供一种静态资源更新系统。

请参见图2,图2为本发明静态资源更新系统的结构示意图,本发明静态资源更新系统,包括:打包单元201、hash化单元202、收集单元203、上传单元204。

打包单元201,用于对静态资源进行打包。

hash化单元202,用于对引用的打包后的静态资源的路径hash化。

收集单元203,用于收集预设时间内的hash发生变化的该静态资源。

上传单元204,用于将html文件上传至服务器,静态资源上传至腾讯云。

其中,打包单元201,用于对静态资源进行打包,包括:

打包单元201,用于复制目标静态资源至工作目录,对该工作目录中的静态资源进行打包。

其中,打包单元201,用于复制目标静态资源至工作目录,对该工作目录中的静态资源进行打包,包括:

打包单元201,用于采用记忆性方式复制目标静态资源至工作目录,采用webpack的方式对该工作目录中的静态资源进行打包。

其中,hash化单元202,用于对引用的打包后的静态资源的路径hash化,包括:

hash化单元202,用于第一步,先获取出css文件中引用的图片媒体资源,找到对应图片资源的绝对路径并获取其hash值,并重命名为[name]-[hash].ext,同时修改该资源在css文件中的路径为cos路径/[name]-[hash].[ext];

第二步,获取html中的静态资源路径,包括图片、js、css等资源,根据其路径获取绝对路径并计算出hash,步骤同第一步;

在第一步及第二步中,对于路径hash化的静态资源,以map的方式保存期路径,key为hash值,路径为value值,以日期为文件名,保存至文件中。

其中,hash化单元202,用于对引用的打包后的静态资源的路径hash化,还包括:

hash化单元202,用于保存已hash与静态资源的路径的对应关系,且按日期保存在文件中,通过比较不同日期的文件,得到hash值存在差异的数据项,获取增量的文件路径,并拷贝至待压缩目录,供发布时使用。

本发明提供的静态资源更新方法,包括:对静态资源进行打包,对引用的打包后的静态资源的路径hash化,收集预设时间内的hash发生变化的该静态资源,将html文件上传至服务器,静态资源上传至腾讯云,从而达到实现在不对源代码产生影响的前提下完成打包,发布,避免了代码库中文件版本发生冲突带来的影响,同时增量发布,仅仅发布新加入的文件,大大提升发布速度,同时,今天资源在线上的多版本共存,保证了在发布过程中,静态资源始终能被访问到,提供站点的可用性。

本发明提供的静态资源更新系统,包括:打包单元201、hash化单元202、收集单元203、上传单元204;打包单元201,用于对静态资源进行打包,hash化单元202,用于对引用的打包后的静态资源的路径hash化,收集单元203,用于收集预设时间内的hash发生变化的该静态资源,上传单元204,用于将html文件上传至服务器,静态资源上传至腾讯云,从而达到实现在不对源代码产生影响的前提下完成打包,发布,避免了代码库中文件版本发生冲突带来的影响,同时增量发布,仅仅发布新加入的文件,大大提升发布速度,同时,今天资源在线上的多版本共存,保证了在发布过程中,静态资源始终能被访问到,提供站点的可用性。

本发明提供的静态资源更新方法及系统,可以在发布系统获取压缩文件并解压,将html文件上传至服务器,静态资源上传至腾讯云,即完成发布过程。发布过程中,未对源代码最初修改,均是对副本的处理,同时通过对静态资源文件名hash化的方式,保证线上多个版本共存。

本发明提供的静态资源更新方法及系统,对css的处理是通过正则匹配出图片地址,而不是通过严格的语法分析得出,可以优化匹配图片地址的方式。

本发明提供的静态资源更新方法及系统,在开发中无需手动设置静态资源版本号即可实现访问最新静态资源,同时采用增量发布的方式,仅仅发布改动文件,保证发布速度。

本发明提供的静态资源更新方法及系统,在开发者无感知的情况下,自动更新css,js,img等静态资源版本号,同时采用增量发布的方式,仅仅发布改动文件,保证发布速度。

本发明提供的静态资源更新方法及系统,可应用于统一登录站点、活动站点,用于解决静态资源的缓存问题,减少协同开发中的冲突问题,提升发布速度。

在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1