我正在尝试使用 jinja2 设置背景图像。我已经设法从我的开发服务器提供我的文件,并且可以在文档中发布图像,但我希望它形成一个漂亮的背景,其他所有内容都在上面。
举个例子,我试过这个:
{% extends "layout.html" %}
{% block body %}
{% if current_user.is_authenticated %}
{% if commPageData.background_image %}
<body background="{{'/images/'+commPageData.background_image}}">
{% else %}
<body>
{% endif %}
A thing
</body>
我有一个 css 文件和一个为模板提供默认行为的布局文件。我怎样才能拥有我所服务的漂亮背景图片?
最佳答案
您似乎试图告诉前端使用应用程序路由,而不向其传递正确的命令。我假设您正在使用 Flask。真的,有两种方法(我能想到)来切这个面包,这取决于你。第一种是仅使用标准 html 而不是嵌入 python 来路由应用程序以查找文件,看起来像:
<body background="/path/to/image.jpg">
但是,如果你想利用框架和模板,那么你应该使用内置方法 url_for
看起来像这样:
<body background="{{ url_for('static', filename=commPageData.background_image) }}">
'static' 是此图像所在的应用程序中的目录。
现在,我不确定 commPageData.background_image 在您的应用程序中的来源。我的代码片段假设它被用作一个值,如果传递回逻辑它会识别,如果这有意义,并且它需要在你告诉 url_for 方法查找它的地方,即使是动态生成的。如果您确实有一个特定的图像要渲染为背景,则需要适本地指定它:
<body background="{{ url_for('static', filename='image.jpg') }}">
当然,在 HTML5 中已被弃用,并且可能无法在许多浏览器中正确呈现。最好使用 CSS 而不是
<body style="background:url({{'images/'+commPageData.background_image}});">
或者直接放在你的CSS文件中
关于python - jinja2 设置背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35023107/