Hub documentation

Cách xử lý các tham số URL trong Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Cách xử lý các tham số URL trong Spaces

Bạn có thể sử dụng các tham số truy vấn URL như một cơ chế chia sẻ dữ liệu, chẳng hạn để liên kết sâu vào một ứng dụng với một trạng thái cụ thể.

Trang Space (https://huggingface.co/spaces/<user>/<app>) nhúng trang ứng dụng thực tế (https://*.hf.space/) trong một iframe. Chuỗi truy vấn và phần tử hash gắn với URL của trang cha được truyền sang ứng dụng nhúng khi tải lần đầu, nhờ đó ứng dụng nhúng có thể đọc các giá trị này mà không cần xử lý đặc biệt.

Ngược lại, việc cập nhật chuỗi truy vấn và hash của URL trang cha từ ứng dụng nhúng phức tạp hơn một chút. Nếu bạn muốn thực hiện điều này trong một Docker hoặc Space tĩnh, bạn cần thêm mã JS sau để gửi một thông điệp đến trang cha có chứa khóa queryString và/hoặc hash.

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

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

Điều này chỉ dành cho Docker hoặc Spaces tĩnh.

Đối với các ứng dụng Streamlit, Spaces tự động đồng bộ hóa các tham số URL. Các ứng dụng Gradio có thể đọc các tham số truy vấn từ trang Spaces, nhưng không đồng bộ hóa các tham số URL đã cập nhật với trang cha.

Lưu ý rằng các tham số URL của trang cha chỉ được truyền sang ứng dụng nhúng lúc tải ban đầu. Do đó, location.hash trong ứng dụng nhúng sẽ không thay đổi ngay cả khi hash của URL cha được cập nhật bằng phương pháp này.

Một ví dụ về phương pháp này có thể được tìm thấy trong Space tĩnh này, whitphx/static-url-param-sync-example.

Update on GitHub