2015-04-06 22 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")