aiohttp的文档说明:
当您想要启用缓存破坏时,参数append_version
可以设置为True
web.static('/prefix', path_to_static_folder, append_version=True)
(从这里)
我的问题是,如何将版本查询注入到生成的HTML中?
例如,我有:
<img class="logo" src="/path_to/static/images/logo.png">
在jinja主布局模板中。
在生成的HTML中,我想要:
<img class="logo" src="/path_to/static/images/logo.png?v=some-hash-value">
但到目前为止,src仍然保持不变,这也许并不奇怪。
我发现的方法是使用aiohttp-jinja2。非常感谢那里的梦幻巫师让我走上了正确的道路。
import aiohttp_jinja2
app = web.Application()
aiohttp_jinja2.setup(
app,
loader=jinja2.FileSystemLoader(Path(__file__).parent / "templates"),
)
app.add_routes(
[
web.static(
"/static",
Path(__file__).parent / "static",
name="static",
append_version=True,
),
]
)
在应用程序设置中,然后通过url()
全局在模板中使用命名的static
路由
<link rel="stylesheet" href="{{ url('static', filename='stylesheets/main.css') }}">