Hub 文档
如何在 Spaces 中处理 URL 参数
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
如何在 Spaces 中处理 URL 参数
您可以使用 URL 查询参数作为数据共享机制,例如,能够通过特定状态深层链接到应用程序。
在 Spaces 页面(https://huggingface.co/spaces/<user>/<app>
)上,实际的应用程序页面(https://*.hf.space/
)嵌入在 iframe 中。附加到父页面 URL 的查询字符串和哈希在初始加载时会传播到嵌入式应用程序,因此嵌入式应用程序无需特殊考虑即可读取这些值。
相反,从嵌入式应用程序更新父页面 URL 的查询字符串和哈希要稍微复杂一些。如果您想在 Docker 或静态 Space 中执行此操作,则需要添加以下 JS 代码,该代码向父页面发送包含 queryString
和/或 hash
键的消息。
const queryString = "...";
const hash = "...";
window.parent.postMessage({
queryString,
hash,
}, "https://huggingface.co");
这仅适用于 Docker 或静态 Spaces。
对于 Streamlit 应用程序,Spaces 会自动同步 URL 参数。Gradio 应用程序可以从 Spaces 页面读取查询参数,但不会将更新的 URL 参数与父页面同步。
请注意,父页面 URL 参数仅在初始加载时传播到嵌入式应用程序。因此,即使使用此方法更新了父 URL 哈希,嵌入式应用程序中的 location.hash
也不会更改。
此方法的示例可以在此静态 Space 中找到,whitphx/static-url-param-sync-example
。