در این مقاله قصد داریم درباره مشکل رایج Serve resources from a consistent URL و حل آن در جی تی متریکس صحبت کنیم. توجه داشته باشید که حل خطای اشاره شده باعث رفع خطای Remove duplicate JavaScript and CSS در YSlow هم میشود.
نام: Serve resources from a consistent URL
نوع: محتوا
اولویت: زیاد
میزان سختی: راحت
میانگین امتیاز: 88%
این خطا وقتی رخ میدهد اگر شما دو عکس یکسان را با دو آدرس متفاوت در صفحهای از طراحی سایت (طراحی سایت شرکتی، طراحی سایت فروشگاهی) خود بارگذاری نمایید، این عمل باعث میشود که تعداد درخواستهای سمت سرور بالا رود و وقتی درخواستهای HTTP افزایش یابد، سرور بیشتر درگیر پاسخ میشود و اگر تعداد چنین فایلهایی زیاد باشد به مراتب تعداد درخواستها بیشتر میشود و طبیعتا درگیری سرور هم بالا میرود، این موضوع شاید در سایتهای کم بازدید خیلی محسوس نباشد ولی وقتی بازدیدکننده سایت بالا باشد قطعا رفع مشکل Serve resources from a consistent URL قدم بزرگی در بهینه سازی سایت چه در سمت سرور و چه در سمت کاربر خواهد کرد.
در جلسات گذشته آموزش جی تی متریکس درباره نحوه کاهش تعداد درخواستها بسیار صحبت کردیم، خطاهای مختلف زیادی مربوط به کاهش درخواست های HTTP اشاره میکردند که خطای Serve resources from a consistent URL هم جر این دستهها است، تمام مقالات زیر به شکل مستقیم یا غیرمستقیم باعث کاهش درخواستهای HTTP میشود و خواندن آن به شما دوستان در جهت ارتقا بهینه سازی داخلی سایت توصیه میشود.
نحوه رفع چنین خطاهایی گاهی راحت و گاهی دشوار و نیاز به برنامهنویسی دارد، در یکی از پروژههای افزایش سرعت سایت که تیم میزفا داشت با چنین خطایی روبهرو شدیم و سایت مشتری دارای فایلهای تکراری همانند زیر بود:
برخی از این خطاها که در سیستمهای مدیریت محتوا مثلا وردپرس و جوملا بیشتر به چشم میخورد به علت فعال بودن پلاگینهای غیراستاندارد است و گاهی اشتباهات دستی که باعث میشود یک فایل که دارای محتوای یکسان هست با آدرس های مختلف بالا بیاید، و یا ممکن است ۲ افزونه به یک محتوا عمومی نیاز داشته باشند (محتوای عمومی منظور مثلا Font Awesome میتواند باشد یا یک سری فایلهای جاوااسکریپت معروف) و هر کدام از این افزونه ها برای لود کردن محتوای عمومی میآیند از آدرسهای خود فراخوانی میکنند که در این صورت خطای فایل تکراری در دو url را شما میتوانید مشاهده کنید، که در این صورت باید تک تک افزونه ها را غیرفعال کنید و ببینید کدام افزونه چنین عملی را پیاده میکند و اگر پیدا کردید به جای آن افزونه از یک افزونه دیگر استفاده کنید. همین موضوع میتوانید بین قالب و یک افزونه یا چند افزونه هم پیش بیایید که باید همین سیاست را در پیش بگیرید.
توجه داشته باشید که آدرسهای زیر شاید همه به یک محتوا اشاره کنند ولی هر کدام یک درخواست محسوب میشوند:
در ۴ آدرس بالا به یک محتوا اشاره میکند ولی ۴ درخواست مختلف سمت سرور ارسال میشود، و شما برای رفع چنین خطایی باید اول منشا آن را شناسایی کنید و سپس آن آدرس را در صورت امکان حذف یا تصحیح کنید.
این خطا باعث کاهش تعداد درخواست های HTTP هم نیز میشود و شما اگر قصد دارید تعداد درخواست هایطراحی سایت خود را در جهت بهینه سازی، کاهش دهید حتما مقاله رفع خطای Make fewer HTTP requests را هم بخوانید.