Hub documentation
Как обрабатывать параметры URL в Spaces
Как обрабатывать параметры URL в Spaces
Вы можете использовать параметры URL-запроса как механизм обмена данными, например, чтобы создать прямую ссылку на приложение в определённом состоянии.
На странице Space (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 родительской страницы передаются во встроенное приложение только при первоначальной загрузке. Поэтому location.hash во встроенном приложении не изменится, даже если хэш URL родительской страницы будет обновлён с помощью этого метода.
Пример использования этого метода можно найти в этом статическом Space: whitphx/static-url-param-sync-example.