文件md5签名解决静态资源缓存和更新问题

维护人:戴荔春 (6016)

说明

实际项目中,当服务器开启了缓存后,如何更好的控制静态文件资源(img,js,css)更新,成为了需要首要面对的问题,本文提供了一个基于gulp自动构建的解决方案

目录

前言

本文主要介绍基于gulp自动构建解决前端文件缓存更新问题

没有gulp基础?没关系,你可以先看 缓存问题与解决方案,里面有讲解md5签名解决文件缓存的必要性,了解完这项技术的必要性后,再去了解Node和gulp吧!

参考来源

前人栽树,后台乘凉,本文参考了以下来源

前置技术要求

本文是基于gulp自动构建的,所以需要注意

缓存问题与解决方案

没有一项技术是会无缘无故出现的,md5签名文件解决缓存自然也有它的缘由,以下进行一一分析

缓存问题的来由与造成问题

事实上,几乎每个前端项目都会遇到静态资源缓存问题,下面解释下这个问题的缘由

采用md5签名解决缓存问题

以上介绍了缓存的来由和由此造成的问题,现在开始介绍解决方案

自动构建md5签名文件的实现方案

以下介绍这种方案的实现,基于gulp自动构建和一些gulp插件

请注意,前提是Node.js和gulp都已正常安装

示例demo体验

这里提供一个示例demo,大家可以下载示例demo,体验自动构建md5签名的效果

实现原理

本示例主要是基于一些gulp插件编写 gulpfile.js,通过Node执行gulpfile.js,从而执行里面的插件,进行自动构建和部署。另外本例中,gulpfile.js里面写一些自动构建的逻辑,config.js里写一些路径配置。更好的分离。

结合Svn实现自动更新部署

以上讲解了gulp自动构建并md5签名文件,那么结合SVN自动更新,可以做到自动的效果

方案对比

介绍以前采用的缓存控制方案,以及本示例中的方案和以前方案对比

以前的缓存方案

以前采用的缓存控制方案大概分为以下几部分

md5签名文件的缓存方案与以前方案对比

任何技术方案,都需要互相对比才能知道各自优劣,下面将通过对比来分析本方案的优势以及采用本方案的必要性。这里将以前的方案简称方案一,将本示例中的方案简称方案二