لماذا تفشل صورة واحدة بينما تُحمَّل بقية الصفحة
ثلاثة شروط تفصل عطل الشبكة عن طلب محجوب وخطأ في العرض. اعرف عنوان URL الذي اختاره المتصفح قبل تغيير المسار.
تُحمَّل الصفحة ويظهر النص، وتبقى صورة واحدة أيقونة مكسورة. رد الفعل الفوري هو إلقاء اللوم على النفق، لأن النفق هو الشيء الذي تغيّر. قبل ذلك، اكتشف عنوان URL الذي طلبه المتصفح فعلاً لتلك الصورة، لأن عنوان الصفحة وعنوان الصورة دليلان مختلفان. معظم تقارير الصور المفقودة تعود إلى مضيف لم يصل إليه طلب ناجح قط، وهذا الجواب يكلف نظرة واحدة إلى لوحة الشبكة.
ثلاثة شروط تحدد أين تبحث
الشرط الأول هو ما إذا كانت الصورة تأتي من المضيف نفسه الذي تأتي منه الصفحة. مضيف الصور المنفصل يحتاج إلى تحليل اسمه الخاص واتصاله الخاص وهويته الخاصة في TLS، لذا فالصفحة التي تُحمَّل لا تقول شيئاً عنه.
الشرط الثاني هو ما إذا كان المتصفح قد حجب الطلب قبل إرساله. المحتوى المختلط وسياسة أمان المحتوى وقواعد المُحيل يمكن أن توقف صورة دون أن تنتج استجابة خادم عادية، ولهذا لا يظهر أي طلب فاشل في القائمة.
الشرط الثالث هو ما إذا كان التسليم قد نجح وفشل العرض، وهي حالة تصل فيها البايتات ولا تظهر الصورة مع ذلك. لهذه الشروط الثلاثة مالكون مختلفون، والشرط الأول وحده هو سؤال شبكة.
| What you see | Where the fault sits |
|---|---|
| Request absent from the list | Markup, lazy loading or a policy that blocked it |
| Request failed or timed out | Resolution, route, TLS or the image host itself |
| Request returned 200, image blank | Response type, decoding or rendering |
اعثر على المورد الذي اختاره المتصفح فعلاً
عنوان URL الذي تراه في مصدر الصفحة ليس غالباً العنوان الذي طُلب. مجموعات المصادر وعناصر picture وخلفيات CSS كلها تتيح للمتصفح اختيار مورد مختلف بناءً على عرض نافذة العرض أو كثافة البكسل أو دعم الصيغة. الصورة المحمَّلة بتأخير قد لا تُطلب إطلاقاً حتى تصل الصفحة إلى حالة معينة.
افحص العنصر والطلب معاً، واحتفظ بالباعث مع الطلب عندما تبلّغ عن المشكلة. مرجع MDN لعنصر الصورة يغطي اختيار المصدر وسلوك التحميل وضوابط المُحيل في مكان واحد، وهو يكفي لمعرفة أي سمة اختارت العنوان الفاشل.
سجّل اسم المضيف والحالة وأي سلسلة إعادة توجيه ونوع محتوى الاستجابة. استجابة 200 التي تعيد صفحة تسجيل دخول ليست صورة صالحة، وإعادة التوجيه إلى صفحة خطأ HTML تبدو مطابقة لملف تالف حتى تقرأ النوع.
اقرأ الحالة قبل الشبكة
انتهاء المهلة والطلب المرفوض وخطأ فك الترميز تحتاج إلى خطوات تالية مختلفة، ورمز الحالة هو ما يفصل بينها. انتهاء المهلة يشير إلى التحليل أو المسار أو مضيف لا يستجيب. الطلب المرفوض يشير إلى سياسة أو طبقة تفويض. وخطأ فك الترميز يشير إلى البايتات أو الصيغة.
إذا لم يظهر الطلب إطلاقاً، فتوقف عن النظر إلى الشبكة وانظر إلى الترميز. السبب الأكثر شيوعاً هو إدخال في مجموعة المصادر فضّله المتصفح ولم يعد موجوداً على الخادم، يليه عنصر لم يجعل سكربت مرئياً قط.
هذا التمييز وحده يمنع معظم الجهد الضائع في هذه الفئة من التقارير.
عندما يحجبه المتصفح، لا توجد استجابة لتقرأها
المحتوى المختلط هو الحالة الكلاسيكية: صفحة HTTPS تطلب صورة عبر HTTP العادي فيُحجب الطلب بدلاً من أن يفشل، وتسجّل وحدة التحكم السبب. سياسة أمان المحتوى تنتج الشكل نفسه، مع تسمية التوجيه المحجوب في الرسالة. سياسة المُحيل التي تحذف الترويسة يمكن أن تجعل مضيفاً محمياً من الربط الساخن يعيد عنصراً نائباً بدلاً من الصورة.
اقرأ السبب المسجّل قبل لمس مسار الشبكة، لأن هذه الحجوبات لا تتحسن عندما يتغير المسار. إضافة أذونات عبر النطاقات ليست الحل أيضاً: عرض صورة من مضيف آخر وقراءة بكسلاتها في canvas عمليتان مختلفتان، والثانية وحدها تحتاج إلى الترويسات التي يلصقها الناس.
بالنسبة لموقع تديره أنت، صحّح عنوان URL للمورد أو الاستجابة أو السياسة عند مالكها واحتفظ بمتطلبات التفويض والمُحيل سليمة. وبالنسبة لموقع لا تتحكم فيه، أرسل الصفحة وأدلة الطلب إلى قناة الدعم الخاصة به بدلاً من إعادة نشر روابط موارد خاصة أو منتهية الصلاحية.
قارن المسارات دون تغيير الأدلة
إذا أردت فعلاً اختبار مسار الوصول، فأبق كل شيء آخر ثابتاً: الصفحة نفسها والحساب نفسه والصورة المختارة نفسها، مع تغيير مسار واحد مسموح. قارن إدخالات الطلب جنباً إلى جنب بدلاً من النتيجة المعروضة، لأن النتيجة المعروضة تخبرك هل ظهرت الصورة، لا لماذا.
الصورة التي تُحمَّل على مسار جديد لا تثبت أن ذلك المسار مصرح به، والصورة التي تبقى مكسورة لا تثبت أن النفق هو السبب. إذا أُزيلت الصورة أو كان الوصول مقيداً عن قصد، فاستخدم بديلاً مدعوماً بدلاً من تعطيل فحوص الشهادات أو نسخ مواد محمية تعود لشخص آخر.
ترتيب العمل: حدد عنوان URL المختار، واقرأ حالته ونوعه، وتحقق من وجود سبب حجب مسجل، ثم قارن تغييراً واحداً في المسار في كل مرة.