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 上更新