Streamlit 的静态文件服务(Static file serving)
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 仓库中存在的文件始终可被访问。任何在应用运行过程中生成的文件(如用户上传的文件等),
无法保证在会话之间持久存在。 - 如果应用存储并提供大量文件或大文件,可能会触及资源限制而被关闭。
- GitHub 仓库中存在的文件始终可被访问。任何在应用运行过程中生成的文件(如用户上传的文件等),
使用示例
- 将图片
cat.png放入./static/文件夹 - 在
.streamlit/config.toml的[server]部分添加enableStaticServing = true ./static/文件夹中的任何媒体文件都可以通过相对 URL 如app/static/cat.png被访问
# .streamlit/config.toml
[server]
enableStaticServing = true
# app.py
import streamlit as st
with st.echo():
st.title("CAT")
st.markdown("[](https://streamlit.io)")
更多资源
仍有疑问?
我们的 论坛 汇聚了大量有用信息和 Streamlit 专家。

浙公网安备 33010602011771号