我想提供一些大多数静态但有时会更改带有烧瓶的文件。现在它们位于static
目录中,可以在/static/filename
上访问,有时会生成一个新版本的文件,并由烧瓶应用程序在静态目录中编写,但问题是它们不是&除非我在浏览器中按下刷新按钮,否则将在浏览器中自动更新。
答案 0 :(得分: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,
...
)
然后在您的jinja模板中使用static_url("js/a.js")
代替url_for("static", filename="js/a.js")
。