یکی دیگه از خطاهایی که زیاد در هنگام تست سرعت سایت باهاش مواجه خواهید شد خطای Remove query strings from static resources در جی تر متریکس هست. این پارامتر برای درخواستهایی هست که به صورت query strings ارسال میشه و شامل کاراکتر ? هستند که اگه بخوام به نمونهای از این درخواستها اشاره کنم میشه به آدرس آواتار اشاره کرد که در انتهاش عبارتی مثل ?s=70&d=mm&r=g قرار داره. یا تو انتهای فایلهای JS و CSS که به صورت مقدار VER نمایش داده خواهد شد. وجود همین Query String ها باعث میشه که در سورسهایی که در انتهای آدرسشون علامت سوال قرار داره کش نشن و علاوه بر اون روی شبکه توزیع محتوا CDN و مرورگرهای دیگه هم کش نخواهند شد. پس همین موضوع باعث میشه که نه تنها حجم صفحاتتون بالا میره، بلکه با خطای دیگه Leave Browser Caching هم مواجه بشید.
در این آموزش قصد دارم به نحوه برطرف کردن خطای Remove query strings در جی تی متریکس بپردازم که با استفاده از این آموزش میتونید به سادگی و به روشهای مختلف این خطا رو از سایت خودتون برطرف کنید.
رفع خطای Remove query strings from static resources
حتما این سوال در ذهنتون نقش بسته که اصلا query strings چیست و چرا باید ازش برای افزایش سرعت سایت استفاده کنیم. همونطور که در بالا اشاره کردم وجود query strings باعث میشه که فایلهای مورد نظر کش نشده و در هر با بازدید کاربر از سایت از سمت سرور لود بشن. برای همین باعث بالا رفتن سرعت لود سایت و افزایش تعداد درخواست HTTP هم میشه. اما در مقابل وجود query strings هم باعث میشه تا توسعه دهندهها بتونن تغییراتی رو که در فایلها اعمال میکنند رو بدون کش شدن زودتر آپدیت کنند. یعنی وقتی شما قالب وردپرس خریداری میکنید و چند روز بعد آپدیتی براش منتشر میشه، تا زمانی که فایلها به صورت کش شده ذخیره هستند کاربران قبلی که این فایلها براشون کش شده همچنان با ظاهر قبلی سایت براشون بالا میاد.
برای همین بهتره کاری کنیم که query strings رو خودمون مدیریت کنیم و با تعریف بازه زمانی هر زمان که نیاز بود فایلهای کش شده رو از حالت کش خارج کرده و آپدیت کنیم. در این صورت هر زمان که آپدیتی روی فایلها انجام دادید به راحتی میتونید از طریق سرور فایل رو مجددا برای مرورگر بازدیدکنندهها ارسال کنید تا آپدیت شده و در حالت کش براشون لود نشه.
رفع خطای Remove query strings وردپرس
برای رفع مشکل Remove query strings from static resources در وردپرس دو راهکار پیش روی شماست که شامل استفاده از افزونه و استفاده از کدنویسی است. در صورتی که تمایل به استفاده از افزونه دارید، کافیه روی دکمه زیر کلیک کرده و بعد از اینکه وارد صفحه افزونه شدید با استفاده از راهنمای نصب افزونه در وردپرس اقدام به نصب و فعال سازی افزونه در سایت خودتون بکنید. بعد از فعال کردن افزونه نیاز به انجام کار دیگهای ندارید و منو و تنظیمات خاصی هم به سایت شما اضافه نخواهد شد. کافیه فقط افزونه را در حالت فعال شده باقی بگذارید.
علاوه بر این اگر از افزونه wp rocket هم استفاده میکنید قادر هستید با استفاده از تنظیمات افزونه این قابلیت رو در وردپرس فعال کنید. برای این منظور کافیه از راهنمای آموزش افزونه Wp Rocket استفاده کنید.
اما اگه تمایل به استفاده از افزونه ندارید میتونید با اضافه کردن قطعه کد زیر در فایل فانکشن(functions.php) قالب وردپرس خودتون این قابلیت رو فعال کنید. برای این منظور بعد از اینکه وارد هاست خودتون شدید به منوی File Manager مراجعه کنید. سپس به مسیر public_html/wp-content/themes مراجعه کنید. حالا وارد پوشه قالبی که در سایت فعال هست شده و فایل functions.php را پیدا کنید. در نهایت روی فایل راست کلیک کرده و گزینه Edit رو برای اضافه کردن کدهای زیر در جای مناسبی انتخاب کنید.
function _remove_script_version( $src ){
$parts = explode( '?', $src );
return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
بعد از اینکه فایل رو ذخیره کردید، این قابلیت در وردپرس فعال شده و فایلهای CSS و JS کش خواهند شد.
رفع خطای Remove query strings جوملا
در صورتی که از جوملا استفاده میکنید برای برطرف کردن خطای در جوملا هم میتونید روی دکمه زیر کلیک کرده و پلاگین Joomsef رو در سایت خودتون نصب کنید. بعد از نصب و فعال کردن این افزونه هم امکان حذف کوئریهای string ار جوملا فراهم شده و فایلهای JS و CSS کش خواهند شد.
یه راهکار دیگه هم در جوملا وجود داره که با رفتن به تنظیمات کلی(Global Configuration) از قسمت SEO Settings گزینهای وجود با عنوان search engine friendly (SEF) URLs وجود داره که با فعال کردن این گزینه میتونید آدرسهای سایت رو برای کاربران و موتورهای جستجو بهینه کنید. مثلا آدرس http://example.com/index.php?page=name تبدیل به http://example.com/name میشه. اما مشکلی که در این شیوه وجود داره اینه که ممکنه با دوگانگی محتوا در گوگل مواجه بشید که برای برطرف کردن این مشکل کافیه کد زیر رو به فایل robots.txt سایتتون اضافه کنید.
User-agent: *
Disallow: /*?*
با اضافه کردن این کد از ایندکس شدن آدرسهایی که دارای کاراکتر علامت سوال هستند جلوگیری خواهد شد.
رفع خطای Remove query strings در php
اما در صورتی که از زبان php و سیستم سایت ساز اختصاصی که با php ساخته شده استفاده میکنید میتونید با استفاده از کدهای زیر در این زبان برنامه نویسی مشکل query strings را برطرف کنید.
function remove_querystring_var($url, $key) {
$url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
return ($url);
}
امیدوارم که این آموزش هم مورد توجه و پسند شما قرار گرفته باشه و با استفاده از این مقاله تونسته باشید خطای Remove query strings from static resources در جی تی متریکس رو برطرف کنید. در صورتی که در رابطه با این آموزش سوال یا مشکلی داشتید در بخش دیدگاهها اعلام کنید.