找回密码
 立即注册
首页 业界区 安全 Streamlit 的静态文件服务(Static file serving) ...

Streamlit 的静态文件服务(Static file serving)

襁壮鸢 2025-7-18 16:51:26
Streamlit 应用可以托管并提供小型静态媒体文件,用于支持那些无法通过常规 媒体元素 实现的媒体嵌入场景。
如需启用此功能,请在配置文件的 [server] 部分设置 enableStaticServing = true,
或使用环境变量 STREAMLIT_SERVER_ENABLE_STATIC_SERVING=true。
存放在应用文件同级目录下 ./static/ 文件夹中的媒体文件,
可通过路径 app/static/[文件名] 访问,
例如 http://localhost:8501/app/static/cat.png。
使用细节


  • 以下扩展名的文件将被正常提供:

    • 常见图片格式:.jpg、.jpeg、.png、.gif
    • 常见字体格式:.otf、.ttf、.woff、.woff2
    • 其他类型:.pdf、.xml、.json
    其他任何类型的文件都会以 Content-Type:text/plain 的响应头发送,浏览器会将其渲染为纯文本。
    这是出于安全考虑——需要渲染的其他文件类型应托管在应用外部。

  • Streamlit 还会为从 static 目录渲染的所有文件设置 X-Content-Type-Options:nosniff 响应头。
  • 对于部署在 Streamlit Community Cloud 的应用:

    • GitHub 仓库中存在的文件始终可被访问。任何在应用运行过程中生成的文件(如用户上传的文件等),
      无法保证在会话之间持久存在。
    • 如果应用存储并提供大量文件或大文件,可能会触及资源限制而被关闭。

使用示例


  • 将图片 cat.png 放入 ./static/ 文件夹
  • 在 .streamlit/config.toml 的 [server] 部分添加 enableStaticServing = true
  • ./static/ 文件夹中的任何媒体文件都可以通过相对 URL 如 app/static/cat.png 被访问
  1. # .streamlit/config.toml
  2. [server]
  3. enableStaticServing = true
复制代码
  1. # app.py
  2. import streamlit as st
  3. with st.echo():
  4.     st.title("CAT")
  5.     st.markdown("[![点我](app/static/cat.png)](https://streamlit.io)")
复制代码
更多资源


  • 配置与自定义应用 - Streamlit 文档
  • 静态文件服务示例应用
仍有疑问?

我们的 论坛 汇聚了大量有用信息和 Streamlit 专家。

来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除

相关推荐

您需要登录后才可以回帖 登录 | 立即注册