首页 > 代码库 > web项目js css静态文件缓存解决
web项目js css静态文件缓存解决
在web开发过程中经常会遇到js及css文件缓存的问题,开发过程中我们可以自己手动的清空浏览器缓存,但是我们没法告诉用户去执行一个他们或许不熟悉的操作(清空浏览器缓存),为解决这个问题,编写了一个grunt插件,在前端构建的时候,可以使用grunt插件来做这件事情,就是将js及css文件自动的加上一个版本号(这里我用的是时间戳)
基于grunt的js 及css文件自动加version的插件,可以将配置的目录下所有引用到指定匹配的js及css文件加上一个版本号
github地址: https://github.com/noahxinhao/automatic-version-increment
具体的说明
automatic-version-increment
control the cache of assets by appending timestamp hash to asset url
Getting Started
This plugin requires Grunt ~0.4.1
If you haven‘t used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you‘re familiar with that process, you may install this plugin with this command:
npm install automatic-version-increment --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks(‘automatic-version-increment‘);
The "automatic" task
Overview
In your project‘s Gruntfile, add a section named automatic
to the data object passed intogrunt.initConfig()
.
grunt.initConfig({ automatic: { js: { options: { }, assetUrl:‘demo/js/hello.js‘, files: { ‘tmp‘: [‘demo/index.html‘], }, }, }, });
Usage Examples
Default Options
In this example, we have index.html which contains hello.js and hello.css. In Gruntfile.js, write as below, then grunt
, we can get the index.html which has assets url with timestamp.
assetUrl
is the css or js file path files
is the file which contains the assets(usually is html file)
Notice to write the correct path.
grunt.initConfig({ automatic: { js: { options: { basicSrc: ["src/main/webapp/public/js_control/"] }, assetUrl: [‘**/*.js‘], files: { ‘tmp‘: [‘src/main/webapp/views/**/*.jsp‘] } }, css: { options: { basicSrc: ["src/main/webapp/public/css/"] }, assetUrl: [‘**/*.css‘], files: { ‘tmp‘: [‘src/main/webapp/views/**/*.jsp‘] } } } });
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
web项目js css静态文件缓存解决