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.




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。