为了账号安全,请及时绑定邮箱和手机立即绑定

Flask - 向路由中断图像添加参数

Flask - 向路由中断图像添加参数

慕田峪9158850 2023-10-31 21:28:31
看来我误解了 Flask 应用程序中的路由如何与本地文件(图像)相关。基本示例:在我的网站 ( ) 的主页上@main_bp.route('/index'),我有一些内容,包括导航栏。导航栏包含一个图像,称之为logo.svg。导航栏中的图像始终在主页 ('/index') 上正确呈现。导航栏以base.html. img 源是../static/images/logo.svg我还有另一个页面,称之为web_content/<content_number>。在 中routes.py,它看起来像这样:@main_bp.route('/web_content/<content_number>', methods=['GET', 'POST'])当我导航到此页面时,图像(包括logo.svg导航栏中的图像)呈现得很好。该页面使用{% extends 'base.html' %}我正在尝试在我的网站中添加一个图层,将其命名为content_category. 因此,修改routes.py如下:@main_bp.route('/web_content/<content_category>/<content_number>该页面呈现,所以我相信我在routes.py中的代码是好的(content_category在函数中定义等)但是,当我添加content_category参数时,导航栏中的图像在内容页面上中断。如果我返回主页,导航栏中的图像呈现得很好。所以它似乎不是全局损坏,仅在/web_content我添加另一个参数时在页面上出现。这让我感到困惑,因为我只在 1 个位置定义了导航栏,base.html并且如果图像在一个位置渲染,我希望它们在任何地方渲染。
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

使用类似的路径../static/images/logo.svg将使浏览器加载该图像,相对于 URL 中的路径。通过添加这样的参数content_category可以更改该 URL 路径。

url_for相反,在模板中使用 Flask 的函数来动态渲染正确的路径:

<img src="{{ url_for('static', filename='logo.svg') }}" />


查看完整回答
反对 回复 2023-10-31
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信