Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Streamlit应用中HTML模板引用本地图片的方法_创想鸟

Streamlit应用中HTML模板引用本地图片的方法

Streamlit应用中HTML模板引用本地图片的方法

streamlit应用中,当使用html模板(如st.markdown)嵌入本地图片时,可能会遇到图片无法显示的问题。本文将详细阐述如何通过修改streamlit的配置config.toml文件来启用静态文件服务,并指导用户正确组织本地图片资源,确保这些图片能在html模板中被成功加载和展示。

Streamlit以其简洁高效的特性广受开发者喜爱,但在构建复杂的用户界面时,我们常需借助HTML模板来实现更灵活的布局和样式。此时,若尝试在这些HTML模板中引用本地存储的图片资源,可能会发现图片无法正常显示,这通常是由于Streamlit默认的安全策略和文件服务机制所致。

理解Streamlit的静态文件服务机制

Streamlit出于安全和性能考虑,默认情况下不会直接对外提供应用目录下的任意文件访问权限。这意味着,即使图片文件存在于项目目录中,也无法通过简单的相对路径或绝对路径在HTML模板中直接引用。为了解决这一问题,Streamlit提供了一个内置的静态文件服务功能,允许开发者指定一个目录作为静态资源服务器的根目录。

启用静态文件服务

要使Streamlit能够服务本地图片,我们需要修改其配置文件config.toml。

定位或创建config.toml文件:config.toml文件通常位于您的用户根目录下的.streamlit/文件夹中(例如:Windows系统在C:\Users\YourUser\.streamlit\,Linux/macOS在~/.streamlit/)。如果该文件或文件夹不存在,请手动创建。

立即学习“前端免费学习笔记(深入)”;

添加配置项:在config.toml文件中,添加或修改以下内容以启用静态文件服务:

# .streamlit/config.toml[server]enableStaticServing = true

enableStaticServing = true这一行指令Streamlit启用静态文件服务。

组织本地图片资源

启用静态文件服务后,您需要将所有希望通过HTML模板引用的本地图片放置在一个特定的目录中。Streamlit会将您的应用根目录下的static文件夹(或您在配置中指定的其他文件夹)作为静态资源的提供源。

推荐做法: 在您的Streamlit应用的主脚本(例如app.py)所在的目录下,创建一个名为static的文件夹。将所有本地图片(如ghog1.jpg)放入此文件夹。

AppMall应用商店 AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店 56 查看详情 AppMall应用商店

例如,您的项目结构可能如下:

my_streamlit_app/├── app.py└── static/    └── ghog1.jpg    └── myimage.png

在HTML模板中引用图片

一旦静态文件服务被启用且图片放置在正确的static文件夹中,您就可以在HTML模板中通过相对路径引用这些图片了。引用路径应以/static/开头,后跟图片在static文件夹中的相对路径。

例如,如果ghog1.jpg位于my_streamlit_app/static/目录下,则在HTML模板中的src属性应设置为/static/ghog1.jpg。

示例代码:

假设您的app.py中包含以下HTML模板:

import streamlit as st# 假设bot_template和user_template是您的HTML模板字符串bot_template = '''
Streamlit应用中HTML模板引用本地图片的方法
{{MSG}}
'''user_template = '''
Streamlit应用中HTML模板引用本地图片的方法
{{MSG}}
'''st.title("聊天机器人示例")st.markdown(bot_template.replace("{{MSG}}", "你好,我是机器人!"), unsafe_allow_html=True)st.markdown(user_template.replace("{{MSG}}", "你好,我是用户!"), unsafe_allow_html=True)# 另一种直接引用静态资源的方式(非HTML模板,但展示路径用法)# 这里的 'static/myimage.png' 是相对于应用根目录的路径st.markdown("[![点击我](static/myimage.png)](https://streamlit.io)", unsafe_allow_html=True)# 注意:在HTML模板的src属性中,通常建议使用以 '/' 开头的绝对路径 '/static/myimage.png',# 以确保在不同页面或路由下路径解析的稳定性。

注意事项:

src属性中的路径必须以/static/开头,这表示从静态文件服务的根目录开始查找。确保您的config.toml文件被Streamlit正确加载。修改后可能需要重启Streamlit应用才能生效。st.markdown函数在渲染HTML时,需要设置unsafe_allow_html=True以允许嵌入原始HTML内容。图片文件的大小和格式也可能影响加载性能,建议对图片进行优化。

总结

通过简单地在.streamlit/config.toml中设置enableStaticServing = true,并遵循将本地图片放置在static目录的约定,Streamlit应用就能在HTML模板中成功加载并展示本地图片。这一机制不仅解决了本地图片引用问题,也为Streamlit应用提供了更丰富的界面定制能力,使其能够更好地融合自定义HTML和CSS。

以上就是Streamlit应用中HTML模板引用本地图片的方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/597363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
word首页不显示页码第二页显示1(word首页不显示页码怎么设置)
上一篇 2025年11月10日 18:50:19
Mac电脑玩《小小优趣》攻略,苹果电脑上运行《小小优趣》详细指南
下一篇 2025年11月10日 18:50:27

相关推荐

  • PHP面向对象开发:解决父类构造器参数在嵌套子对象方法中丢失的问题

    在PHP面向对象编程中,我们经常会遇到类继承和对象组合的场景。一个常见的问题是,当父类构造函数接收参数并用于初始化内部的子对象时,该子对象的方法在后续调用中可能无法正确访问到这些参数,甚至显示为null。本文将深入探讨这一问题,并提供两种有效的解决方案。 引言与问题阐述 考虑一个典型的web应用架构…

    2026年9月22日
    000
  • 悟空浏览器下载速度慢怎么解决_悟空浏览器下载速度慢提升技巧

    下载慢可优化缓存、网络、后台、多线程及版本。1、清理缓存与数据;2、检查Wi-Fi并优化信号;3、关闭后台应用释放资源;4、开启多线程加速下载;5、更新浏览器至最新版本。 如果您在使用悟空浏览器下载文件时遇到速度缓慢的情况,这可能是由于网络连接不稳定、浏览器缓存堆积或后台资源被大量占用所致。优化相关…

    2026年9月22日
    600
  • 使用MockWebServer对FeignClient进行单元测试

    本文详细阐述了如何利用Spring Cloud LoadBalancer和MockWebServer对FeignClient进行高效单元测试。通过在测试配置中动态注册MockWebServer实例,并将其作为FeignClient的服务发现目标,开发者可以精确模拟后端API的行为,包括各种HTTP响…

    2026年9月22日
    000
  • 常见分布式任务调度工具浅析

    一、背景 在日常业务中,经常会遇到需要在特定时间执行任务或周期性执行任务的需求。这些任务通常被归类为定时任务。为了满足这种需求,各种任务调度框架应运而生,如Timer、ScheduledThreadPoolExecutor(没错,它也可以用于定时任务)、Quartz等。然而,随着分布式和微服务的发展…

    2026年9月22日
    100
  • win11平板模式无法自动切换怎么办_win11平板模式自动切换异常修复方法

    首先检查设备形态和设置,确保键盘分离或屏幕翻转到位,并在“平板电脑”设置中启用自动切换;若无效,重启Windows资源管理器、更新传感器驱动或重装感应式旋转锁驱动;最后通过sfc /scannow命令修复系统文件,恢复平板模式自动切换功能。 如果您发现Windows 11的平板模式无法根据设备形态自…

    2026年9月22日
    100
  • 豫事办的密码怎么改

    首先通过个人中心修改密码或使用忘记密码功能重置。记得密码时,进入豫事办APP我的→设置→修改密码,输入原密码和新密码即可;忘记密码则在登录页点击“忘记密码”,输入手机号获取验证码后设置新密码完成重置。 如果您需要更新您的豫事办账户密码以确保账户安全,可以通过应用内设置直接修改,或在忘记密码时通过身份…

    2026年9月22日
    400
  • windows怎么用命令行删除顽固文件_命令行删除顽固文件的方法

    使用命令行可强制删除顽固文件,先以管理员身份运行cmd或PowerShell,通过del /f /q或Remove-Item -Force命令删除文件,若被占用则用taskkill终止进程,或进入安全模式删除,也可用rd /s /q删除整个目录。 如果您尝试删除某个文件时,发现资源管理器无法完成操作…

    2026年9月22日
    200
  • VSCode安全更新机制解析

    VSCode通过自动检查、数字签名验证和用户可控策略确保更新安全。启动时后台定期HTTPS请求检查新版本,每日一次;安装包经平台特定签名(Windows Authenticode、macOS代码签名、Linux GPG)验证完整性;用户可选自动更新、提示或关闭,企业可集中管控;微软通过安全入口响应漏…

    2026年9月22日
    000
  • Linux系统中文件属性和权限实战操作

    Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作Linux系统中文件属性和权限实战操作

    —–原本今天的文章是昨天晚上就要更新的,但是由于昨天晚上下班回到住的地方,发现停电了,所以就没写成。今天是在上一篇文章–linux系统中文件类型的基础上,继续进行深入的学习。好了,直接开干。 一、文件的操作权限: 1、在这之前我想还是很有必要介绍对文件的操作权限(…

    2026年9月22日 用户投稿
    000
  • Hazelcast缓存数据未显示:排查与解决指南

    本文旨在解决在使用Spring Cache结合Hazelcast时,通过@CachePut等注解成功将数据放入缓存,但无法通过HazelcastInstance获取缓存数据的问题。文章将深入探讨可能的原因,并提供详细的配置步骤和代码示例,帮助开发者正确配置和使用Hazelcast缓存。 在使用Spr…

    2026年9月22日
    000
  • VSCode快速配置Dart:Flutter开发、中文提示、热加载

    安装vscode并下载flutter sdk,解压至无中文或特殊字符的路径;2. 将flutter sdk的bin目录添加到系统环境变量path中;3. 打开新终端执行flutter doctor,根据提示安装缺失的依赖;4. 在vscode扩展商店安装dart和flutter扩展;5. 确保在调试…

    2026年9月22日
    200
  • MuseScore Studio 4.6.2 发布

    MuseScore 是一款支持多平台的所见即所得(WYSIWYG)音乐制谱工具。近日,MuseScore 4.6.2 正式上线,此次版本更新重点修复了多个关键性的回归问题。 值得一提的是,本版本重新恢复了对 macOS 10.15 及 macOS 11 系统的支持。此前在 4.6 版本中,由于升级至…

    2026年9月22日
    000
  • Laravel 8 登录后重定向至仪表盘的策略与实践

    本教程详细阐述了在 Laravel 8 中实现用户登录后重定向到仪表盘的多种策略。我们将探讨如何通过配置 LoginController 的 $redirectTo 属性、利用 RouteServiceProvider 定义常量以及在自定义登录方法中进行精确控制来管理重定向流程。文章还涵盖了相关中间…

    2026年9月22日
    000
  • windows8怎么更改锁屏界面的图片_windows8修改锁屏壁纸的方法

    1、可通过“电脑设置”或“控制面板”更换Windows 8.1锁屏图片;2、在“个性化”中选择“锁屏”并浏览自定义图像完成设置。 如果您希望个性化您的Windows 8设备,更改锁屏界面的图片是一个简单而有效的方法。系统提供了多种途径来设置您喜欢的图像作为锁屏背景。 本文运行环境:Surface P…

    2026年9月22日
    000
  • VSCode配置GDB调试器 深入掌握VSCode调试C程序技巧

    配置vscode中gdb调试c程序的核心是正确设置tasks.json和launch.json;2. tasks.json负责使用gcc -g编译生成带调试信息的可执行文件,确保prelaunchtask与launch.json中的program路径一致;3. launch.json指定调试器gdb…

    2026年9月22日
    100
  • VSCode如何通过扩展实现Markdown预览 VSCode Markdown预览功能的配置方法

    安装“markdown all in one”或“markdown preview enhanced”等扩展;2. 安装后通过ctrl+shift+v打开预览;3. 在设置中配置预览样式、主题、字体等;4. 启用“auto show preview to side”实现自动预览;5. 开启“scro…

    2026年9月22日
    000
  • E票电影app微信解绑教程

    E票电影app微信解绑操作指南: 1、启动应用后,选择底部菜单中的“我的”页面,接着点击“设置”图标。 2、在设置界面中,找到并进入“账户与安全”功能项。 3、进入绑定信息页面后,点击“已绑定”的微信账号,按照提示完成解绑操作。 以上就是E票电影app微信解绑教程的详细内容,更多请关注创想鸟其它相关…

    2026年9月22日
    100
  • 如何在Linux命令行中进行文件查找?

    最常用Linux查找文件方法是使用find命令。按名称搜索用-name选项,如find . -name “*.log”;忽略大小写用-iname;按类型查用-type f(文件)或d(目录);按大小查用-size,如+100M表示大于100MB;按修改时间用-mtime,-7…

    2026年9月22日
    000
  • 成都一青旅禁止40岁以上男性预订?店家回应

    近日,四川成都的一家青年旅舍因其一项特殊的预订规则而引发了网络热议。有网友发现,该青旅推出的4元特价房,竟明确禁止40岁以上的男性和30岁以上的女性进行预订。 特价房背后的“附加任务” 10月13日,记者联系了涉事的三家青旅。工作人员向记者证实了这一年龄限制的存在。他们解释称,这4元的特价并非简单的…

    用户投稿 2026年9月22日
    000
  • ThinkPad电脑黑屏无显示如何解决?商务本常见问题修复教程

    ThinkPad黑屏但风扇转时,先做强制断电放电,再接外显测试;若有显示则为屏幕或排线问题,否则查内存、显卡等内部硬件,逐步深入排查可定位故障。 ThinkPad电脑突然黑屏无显示,这事儿搁谁身上都挺糟心的,尤其是那些把笔记本当命根子的商务人士。别慌,经验告诉我,很多时候它没你想的那么严重,往往是一…

    2026年9月22日
    000

发表回复

登录后才能评论
关注微信