কেন একটি ছবি ব্যর্থ হয় যখন পৃষ্ঠার বাকি অংশ লোড হয়
তিনটি শর্ত নেটওয়ার্ক ত্রুটি, ব্লক করা অনুরোধ ও রেন্ডারিং ত্রুটিকে আলাদা করে। পথ বদলানোর আগে ব্রাউজার যে URL বেছে নিয়েছে তা খুঁজে বের করুন।
পৃষ্ঠা লোড হয়, লেখা দেখা যায়, আর একটি ছবি ভাঙা আইকন হয়ে থাকে। স্বাভাবিক প্রতিক্রিয়া হলো টানেলকে দোষ দেওয়া, কারণ টানেলটাই বদলেছে। তার আগে জেনে নিন ব্রাউজার ওই ছবির জন্য আসলে কোন URL অনুরোধ করেছিল, কারণ পৃষ্ঠার 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 দেখেন সেটি প্রায়ই অনুরোধ করা URL নয়। সোর্স সেট, picture এলিমেন্ট আর CSS ব্যাকগ্রাউন্ড—সবই ব্রাউজারকে ভিউপোর্টের প্রস্থ, পিক্সেল ঘনত্ব বা ফরম্যাট সাপোর্টের ভিত্তিতে ভিন্ন একটি রিসোর্স বেছে নিতে দেয়। অলসভাবে লোড হওয়া ছবি পৃষ্ঠা নির্দিষ্ট অবস্থায় না পৌঁছানো পর্যন্ত আদৌ অনুরোধ নাও হতে পারে।
এলিমেন্ট আর অনুরোধ একসাথে পরীক্ষা করুন, আর সমস্যা জানানোর সময় অনুরোধের সাথে ইনিশিয়েটর রেখে দিন। MDN-এর ইমেজ এলিমেন্ট রেফারেন্স এক জায়গায় সোর্স নির্বাচন, লোডিং আচরণ আর রেফারার নিয়ন্ত্রণ কভার করে, যা কোন অ্যাট্রিবিউট ব্যর্থ URL বেছে নিয়েছে তা বলার জন্য যথেষ্ট।
হোস্টনেম, স্ট্যাটাস, যেকোনো রিডাইরেক্ট চেইন আর প্রতিক্রিয়ার কনটেন্ট টাইপ লিখে রাখুন। যে 200 প্রতিক্রিয়া সাইন-ইন পৃষ্ঠা ফেরত দেয় সেটি ব্যবহারযোগ্য ছবি নয়, আর HTML ত্রুটির পৃষ্ঠায় রিডাইরেক্ট করা একটি ক্ষতিগ্রস্ত ফাইলের মতোই দেখায়, যতক্ষণ না টাইপটি পড়েন।
নেটওয়ার্কের আগে স্ট্যাটাস পড়ুন
টাইমআউট, প্রত্যাখ্যাত অনুরোধ আর ডিকোডিং ত্রুটির জন্য পরের পদক্ষেপ আলাদা, আর স্ট্যাটাস কোডই সেগুলোকে আলাদা করে। টাইমআউট নাম রেজলিউশন, রুট বা উত্তর দিচ্ছে না এমন হোস্টের দিকে ইঙ্গিত করে। প্রত্যাখ্যাত অনুরোধ পলিসি বা অনুমোদন স্তরের দিকে ইঙ্গিত করে। ডিকোডিং ত্রুটি বাইট বা ফরম্যাটের দিকে ইঙ্গিত করে।
অনুরোধ যদি একেবারেই না দেখায়, তাহলে নেটওয়ার্ক দেখা বন্ধ করে মার্কআপ দেখুন। সবচেয়ে সাধারণ কারণ হলো এমন একটি সোর্স সেট এন্ট্রি যা ব্রাউজার পছন্দ করেছে অথচ সার্ভারে আর নেই, তারপর এমন একটি এলিমেন্ট যা কোনো স্ক্রিপ্ট কখনো দৃশ্যমান করেনি।
এই পার্থক্যটিই এই ধরনের অভিযোগে অধিকাংশ অপচয় রোধ করে।
ব্রাউজার ব্লক করলে পড়ার মতো কোনো প্রতিক্রিয়া থাকে না
মিশ্র কনটেন্ট হলো চিরাচরিত উদাহরণ: সাধারণ HTTP দিয়ে ছবি চাওয়া একটি HTTPS পৃষ্ঠার অনুরোধ ব্যর্থ না হয়ে ব্লক হয়, আর কনসোল কারণটি লিখে রাখে। কনটেন্ট সিকিউরিটি পলিসিও একই রকম ফল দেয়, বার্তায় ব্লক করা ডিরেক্টিভের নাম থাকে। হেডার সরিয়ে দেওয়া রেফারার পলিসিও হটলিংক-সুরক্ষিত হোস্টকে ছবির বদলে প্লেসহোল্ডার ফেরত দিতে বাধ্য করতে পারে।
নেটওয়ার্ক পথে হাত দেওয়ার আগে লিপিবদ্ধ কারণটি পড়ুন, কারণ রুট বদলালে এই ব্লকগুলো ভালো হয় না। ক্রস-অরিজিন অনুমতি যোগ করাও সমাধান নয়: অন্য হোস্টের ছবি দেখানো আর ক্যানভাসে তার পিক্সেল পড়া আলাদা কাজ, আর কেবল দ্বিতীয়টির জন্যই মানুষের পেস্ট করা হেডার দরকার।
আপনি যে সাইট পরিচালনা করেন, সেখানে রিসোর্স URL, প্রতিক্রিয়া বা পলিসি তার মালিকের কাছে ঠিক করুন আর অনুমোদন ও রেফারার শর্ত অক্ষুণ্ন রাখুন। আপনি নিয়ন্ত্রণ করেন না এমন সাইটের ক্ষেত্রে পৃষ্ঠা ও অনুরোধের প্রমাণ তার সাপোর্ট চ্যানেলে পাঠান, ব্যক্তিগত বা মেয়াদোত্তীর্ণ রিসোর্স লিংক পুনঃপ্রকাশ না করে।
প্রমাণ না বদলে পথ তুলনা করুন
আপনি যদি সত্যিই অ্যাক্সেস পথ পরীক্ষা করতে চান, বাকি সবকিছু স্থির রাখুন: একই পৃষ্ঠা, একই অ্যাকাউন্ট, একই নির্বাচিত ছবি, একটি অনুমোদিত পথ বদলানো। রেন্ডার হওয়া ফলাফলের বদলে অনুরোধের এন্ট্রিগুলো পাশাপাশি তুলনা করুন, কারণ রেন্ডার হওয়া ফলাফল বলে ছবিটি দেখা গেছে কি না, কেন নয়।
নতুন রুটে লোড হওয়া ছবি প্রমাণ করে না সেই রুট অনুমোদিত, আর ভাঙা থাকা ছবি প্রমাণ করে না টানেল দোষী। ছবিটি সরানো হলে বা অ্যাক্সেস ইচ্ছাকৃতভাবে সীমিত হলে, সার্টিফিকেট পরীক্ষা বন্ধ করা বা অন্যের সুরক্ষিত উপাদান মিরর করার বদলে একটি সমর্থিত বিকল্প ব্যবহার করুন।
কাজের ক্রম: নির্বাচিত URL চিহ্নিত করুন, তার স্ট্যাটাস ও টাইপ পড়ুন, লিপিবদ্ধ ব্লক করার কারণ আছে কি না দেখুন, তারপর একবারে একটি পথ পরিবর্তন তুলনা করুন।