يتم إزالة الرموز الملية/المراسي من عناوين URLs على الأجهزة المحمولة. كيف يمكن إيقاف ذلك؟

عندما أنقر على رابط يحتوي على مرساة (anchor) على سطح المكتب، ينزل المتصفح إلى ذلك الموقع. ومع ذلك، على الهاتف المحمول (أندرويد، فايرفوكس وكروم)، يتم إزالة المرساة من عنوان URL، لذا لا يحدث التمرير إلى ذلك الموقع.

ما أحاول القيام به:

لدينا وثيقة إرشادات وأسئلة شائعة طويلة تحتاج إلى ربط بالعناوين. نظرًا لأن Discourse يحذف معاملات id، فقد قمت بإنشاء مكون مظهر بسيط يستخدم سمات بيانات مخصصة في المستند المستهدف ويستمع إلى المراسي في عنوان URL للتمرير إلى العنصر ذي سمة البيانات المتطابقة.

يعمل ذلك على سطح المكتب!

ومع ذلك، على الهاتف المحمول، يبدو أن المراسي تُزال، بحيث عند الوصول إلى الصفحة المستهدفة لا يحدث التمرير إلى العنصر الصحيح. وبطبيعة الحال، مع وثيقة طويلة، فإن الهاتف المحمول هو المكان الذي تحتاج فيه إلى هذا التنقل أكثر من أي وقت مضى.

الآن، أجد أن المراسي التي ينشئها مكون فهرس المحتويات تعمل عند فتحها في رابط جديد. لا يتم إزالتها من عنوان URL وينزل المتصفح إلى المكان الصحيح.

كيف يمكنني جعل هذا يعمل؟

تحديث صغير…

اقترح شخص ما استخدام معلمات الاستعلام بدلاً من ذلك. لا يبدو أنها تُزال على الأجهزة المحمولة. ولكن بشكل مذهل، يتم إزالتها على سطح المكتب.

إليك بعض المنشورات ذات الصلة، على الرغم من أنها لا تتناول المشكلة المحددة المتعلقة بحذف الروابط…

لا أستخدم أندرويد، لذلك لا يمكنني اختبار هذا، لكنني استخدمت الارتباط بالعناوين العديد من مرات، وتعمل بشكل جيد على آيفون الخاص بي. أنا فضولي لمعرفة سبب استخدامك لمراسي المعرف (id anchors) بدلاً من الارتباط المباشر بالعنوان الذي تريده؟

على سبيل المثال، هل يعمل هذا بالنسبة لك؟ تكوين Cloudflare R2

هل يمكنك تقديم مثال لكيفية ظهور رابط المرساة الخاص بك؟ ربما أكون أفهم بشكل خاطئ ما تحاول إنجازه.

لأن روابط العناوين هذه هشة للغاية. هذا هو شكل الرابط الذي قدمته:

https://meta.discourse.org/t/-/148916#p-738234-cloudflare-r2-13

ترى -13 في النهاية؟ إنه موجود لأنه العنوان الثالث عشر. بمجرد إضافة عنوان جديد في بداية المستند، ينكسر الرابط. وبطبيعة الحال، إذا قمت بتغيير نص العنوان، ينكسر أيضًا.

عندما أقول “ينكسر”، أعني التغييرات في المستند الهدف. ومن ما أستطيع استنتاجه، يتم إنشاء هذه الروابط المرساة ديناميكيًا عند تحميل الصفحة. لذا إذا كنت تستخدم إضافة فهرس المحتويات (TOC)، فإن تغيير المستند لا يمثل مشكلة.

في حالتنا الاستخدامية، هذا دليل الأسئلة الشائعة (FAQ) الذي يتم وضع رابط له. لذلك، من الشائع إضافة أسئلة/عناوين جديدة.

لكنك على حق في أن Discourse يبدو أنه يكشف عن نمط هذه الروابط المرساة ويسمح بمرورها. ولكن إذا لم يتطابق مع النمط المتوقع، فإنه يتم إزالته.

إنها مجرد معرفات أبجدية رقمية عادية. لذا إذا كنت أحاول إنشاء مرساة لأمثلة أعلاه، سأستخدم فقط cloudflare-r2.