Hub documentation

Cómo manejar parámetros de URL en Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Cómo manejar parámetros de URL en Spaces

Puede usar parámetros de consulta de URL como mecanismo de intercambio de datos, por ejemplo, para poder enlazar directamente a una aplicación con un estado específico.

En una página de Space (https://huggingface.co/spaces/<user>/<app>), la página de la aplicación real (https://*.hf.space/) se incrusta en un iframe. La cadena de consulta y el hash adjuntos a la URL de la página principal se propagan a la aplicación incrustada en la carga inicial, por lo que la aplicación incrustada puede leer estos valores sin consideraciones especiales.

En cambio, actualizar la cadena de consulta y el hash de la URL de la página principal desde la aplicación integrada es un poco más complejo. Si quieres hacer esto en un Space de Docker o estático, necesitas añadir el siguiente código JS que envía un mensaje a la página principal que tiene una clave queryString y/o hash.

const queryString = "...";
const hash = "...";

window.parent.postMessage({
    queryString,
    hash,
}, "https://huggingface.co");

Esto es solo para Docker o Spaces estáticos.

Para las aplicaciones de Streamlit, Spaces sincroniza automáticamente los parámetros de la URL. Las aplicaciones de Gradio pueden leer los parámetros de consulta de la página de Spaces, pero no sincronizan los parámetros de URL actualizados con la página principal.

Tenga en cuenta que los parámetros de URL de la página principal se propagan a la aplicación integrada solo en la carga inicial. Por lo tanto, location.hash en la aplicación integrada no cambiará incluso si el hash de la URL principal se actualiza mediante este método.

Un ejemplo de este método se puede encontrar en este Space estático, whitphx/static-url-param-sync-example.

Update on GitHub