Hub documentation

كيفية التعامل مع معاملات URL في Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

كيفية التعامل مع معاملات URL في Spaces

يمكنك استخدام معاملات الاستعلام في عنوان URL كآلية لمشاركة البيانات، على سبيل المثال لتمكين إنشاء روابط مباشرة إلى تطبيق بحالة محددة.

في صفحة مساحة (https://huggingface.co/spaces/<user>/<app>)، يتم تضمين صفحة التطبيق الفعلية (https://*.hf.space/) داخل إطار iframe. يتم تمرير سلسلة الاستعلام والرمز المرفقان بعنوان الصفحة الأصلية إلى التطبيق المضمّن عند التحميل الأولي، بحيث يمكن للتطبيق المضمّن قراءة هذه القيم دون الحاجة إلى أي اعتبار خاص.

على النقيض من ذلك، فإن تحديث سلسلة الاستعلام (query string) والتجزئة (hash) لعنوان URL للصفحة الأم من التطبيق المضمّن أكثر تعقيداً قليلاً. إذا كنت ترغب في القيام بذلك في مساحة Docker أو مساحة ثابتة، فأنت بحاجة إلى إضافة كود JS التالي الذي يرسل رسالة إلى الصفحة الأم تحتوي على مفتاح queryString و/أو hash.

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

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

هذا مخصص لـ Docker أو المساحات الثابتة فقط.

لتطبيقات Streamlit، يزامن Spaces تلقائيًا معاملات URL. يمكن لتطبيقات Gradio قراءة معاملات الاستعلام من صفحة Spaces، لكنها لا تزامن معاملات URL المحدّثة مع الصفحة الأصلية.

لاحظ أن معاملات عنوان URL للصفحة الأم تنتقل إلى التطبيق المضمّن فقط عند التحميل الأولي. لذا فإن location.hash في التطبيق المضمّن لن يتغير حتى لو تم تحديث كود hash لعنوان URL الخاص بالصفحة الأم باستخدام هذه الطريقة.

يمكن العثور على مثال لهذه الطريقة في هذا الفضاء الثابت، whitphx/static-url-param-sync-example.

Update on GitHub