2015-04-06 89 views
0

我想用幾個瓶子來提供幾個大部分是靜態但有時會更改的文件。現在它們位於static目錄中,可以在/static/filename上訪問,有時會生成新版本的文件並由flask應用程序寫入靜態目錄,但問題是它們不會在瀏覽器中自動更新除非我在瀏覽器中按下刷新按鈕。發送靜態文件,但有時會更改文件

回答

0

您可以爲您的靜態資源創建一個版本查詢字符串。

June一個很好的例子:

def register_jinja(app): 
    ... 

    if not hasattr(app, '_static_hash'): 
     app._static_hash = {} 

    def static_url(filename): 
     if app.testing: 
      return filename 

     if filename in app._static_hash: 
      return app._static_hash[filename] 

     with open(os.path.join(app.static_folder, filename), 'r') as f: 
      content = f.read() 
      hsh = hashlib.md5(content).hexdigest() 

     app.logger.info('Generate %s md5sum: %s' % (filename, hsh)) 
     prefix = app.config.get('SITE_STATIC_PREFIX', '/static/') 
     value = '%s%s?v=%s' % (prefix, filename, hsh[:5]) 
     app._static_hash[filename] = value 
     return value 

    @app.context_processor 
    def register_context(): 
     return dict(
      static_url=static_url, 
      ... 
     ) 

在您神社模板然後用static_url("js/a.js")代替url_for("static", filename="js/a.js")