如何在 Flask 模板上设置背景图片?

新手上路,请多包涵

我的背景图像仅适用于具有 @app.route(‘/’) 的模板。

  <header class="intro-header" style="background-image: url('static/img/home.jpg')">

这在以下情况下非常有效:

 @app.route('/')
def home():
    return render_template('post.html')

一切正常。我明白了:

 127.0.0.1 - - [19/Sep/2016 21:07:11] "GET /static/img/home.jpg HTTP/1.1" 304

但是当我使用相同的模板时:

 @app.route('/post/')
def post():
     return render_template('post.html')

我明白了:

 127.0.0.1 - - [19/Sep/2016 21:15:23] "GET /post/static/img/home.jpg HTTP/1.1" 404 -

背景图像是空白的。

原文由 Yakuzhy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

这是一个简单的问题,可以通过 Flask 文档解决

无论如何,你应该在你的模板中使用这样的东西:

 background-image: url({{ url_for('static', filename='img/home.jpg') }})

但如果您不想使用 Flask 方法,请使用:

 url('/static/img/home.jpg')

或者使用另一个网络服务器而不是 Flask 默认网络服务器来访问 Apache 等文件,并通过 http://yoursite/static/img/home.jpg 访问

原文由 Hamed Mahmoudkhani 发布,翻译遵循 CC BY-SA 4.0 许可协议

部分 URL 相对于样式表的源进行解释,而不是相对于文档 - w3 CSS

这意味着您需要稍微更改 url() 以包括前导 /

 "background-image: url('/static/img/home.jpg')"

原文由 Andy 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏