如何使用aiohttp和jinja2进行缓存破坏



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') }}">

最新更新