Grunt-Fingerprint + Flask

November 25, 2014

Ставим grunt-fingerprint

$ npm install grunt-fingerprint --save-dev

Наш grunt-task, создает шаблон, в который кладет хеш на основе нашей статики.

fingerprint: {
  assets: {
    src: [
      'build/js/app.min.js',
      'build/css/app.min.css'
    ],
    filename: 'pro/templates/_fingerprint.html', 
    template: "{% set fingerprint='<%= fingerprint %>'%}"
  }
},      

grunt.registerTask('build', ['less','autoprefixer','concat','uglify','fingerprint']);  

И инклудим сгенерированый grunt шаблон в наш layout, при изменении статики, клиент получит обновленную версию, без ctrl+f5

{% from '_fingerprint.html' import fingerprint %}

<!doctype html>
<html>
  <head>
    <link href="/static/css/app.min.css?fingerprint={{fingerprint}}" rel="stylesheet">
    <script src="/static/js/app.min.js?fingerprint={{fingerprint}}"></script>

Добавляем в .gitignore

 #.gitignore
pro/templates/_fingerprint.html

Вы великолепны

Ссылки