本身在django中寫靜態文件時,出過這樣的問題: 對一個已經寫好的文件(例: example.js, example.png, example.css),若是我再去修改/替換的話,若是最終文件的地址不變,用戶的瀏覽器可能會由於緩存而依舊使用舊的文件。相似的,cdn服務商處可能也須要咱們去手動刷新以更新。這樣既麻煩,也容易出錯。css
以前在使用react的時候接觸到了webpack,他有一個很方便的功能,就是可以修改文件名(增長hash碼 [name]-[hash:8].js
), 從而實現區別新老版本的功能。在網上搜了一下,發現有 django-webpack-loader 這個庫,使用了下,確實好用。react
簡單看了下它的原理,主要是經過在webpack中引入BundleTracker
,從而生成一個stats.json文件供模板中的render_bundle
去讀取。在webpack的不一樣階段,stats.json的內容不一樣, 以告知render_bundle
正在打包(compiling)/打包出錯(error)/打包成功(done)。webpack
具體的使用姿式能夠見官方博客。git
另外,在使用了webpack後, 咱們可使用webpack的其餘優秀功能,好比利用hmr在反覆修改scss時不用去刷新瀏覽器,提升效率。github
最後,在網上搜icon-font時,找到了一個叫fontello
的優秀開源解決方案,可以幫助咱們只引入須要的字體文件。若是用webpack的話,經過url-loader?limit=10000&name=images/[name].[ext]
的配置可以進一步減小瀏覽器端的網絡請求開銷。到時候看看寫不寫這個東西吧。web