Hub 文档

Spaces 中的 Cookie 限制

Hugging Face's logo
加入 Hugging Face 社区

并获取增强文档体验

开始使用

Spaces 中的 Cookie 限制

在 Hugging Face Spaces 中,应用程序在使用 Cookie 时存在某些限制。这主要是因为 Spaces 页面的结构 (https://huggingface.co/spaces/<user>/<app>),其中包含托管在不同域 (*.hf.space) 上的应用程序,并位于 iframe 内。出于安全原因,现代浏览器倾向于限制来自 iframe 页面(其托管域与父页面不同)的 Cookie 使用。

使用 Docker SDK 托管 Streamlit 应用程序的影响

使用 Docker SDK 托管 Streamlit 应用程序时,这些 Cookie 限制可能会成为问题。默认情况下,Streamlit 会启用基于 Cookie 的 XSRF 保护。因此,某些向服务器提交数据的组件(例如 st.file_uploader())在限制 Cookie 使用的 HF Spaces 上将无法正常工作。

要解决此问题,您需要将 Streamlit 中的 server.enableXsrfProtection 选项设置为 false。有两种方法可以做到这一点

  1. 命令行参数:在运行 Streamlit 应用程序时,可以将此选项指定为命令行参数。以下是一个示例命令

    streamlit run app.py --server.enableXsrfProtection false
  2. 配置文件:或者,您可以在 Streamlit 配置文件 .streamlit/config.toml 中指定此选项。您可以这样编写它

    [server]
    enableXsrfProtection = false
当您使用 Streamlit SDK 时,您无需担心这个问题,因为 SDK 会为您处理。
< > 在 GitHub 上更新