2017-01-25 5 views
1

У меня есть сайт wordpress, используя плагин W3 cache с MaxCDN и Cloudlfare. Я провел несколько различных тестов скорости, и одно общее предложение - «Удалить строки запроса из статических ресурсов». Я загружаю плагин и очищаю свой кеш всюду, но все еще получил это сообщение.Пытается удалить строку строкового запроса

function vmf_remove_script_version($src) { 
if (strpos($src, 'ver=')) { 
    $src = remove_query_arg('ver', $src); 
} 
return $src; 
} 
add_filter('script_loader_src', 'vmf_remove_script_version', 15, 1); 
add_filter('style_loader_src', 'vmf_remove_script_version', 15, 1); 

После некоторого более внимательного рассмотрения, оказывается, все файлы на speedtests ссылается на конец? X81224 (из которых есть 50 + файлы). Поэтому я изменил код на ниже, но все равно не исправил!

function remove_cssjs_ver($src) { 
if(strpos($src, '?ver=')) { 
    $src = remove_query_arg('ver', $src); 
}elseif(strpos($src, '?x')) { 
    $src = str_replace('?x81224','',$src); 
    //remove_query_arg('x', $src); <- thought this wouldn't work because there's no = sign 
} 
return $src; 
} 
add_filter('style_loader_src', 'remove_cssjs_ver', 10, 2); 
add_filter('script_loader_src', 'remove_cssjs_ver', 10, 2); 

Есть ли у кого-нибудь предложения относительно того, как я могу это исправить?

ответ

0

Прежде всего, это не является хорошей идеей для удаления аргумента? Ver = ... query. Эта версия обычно статична и должна обновляться только при изменении сценария.

Ваши клиенты сохраняют скрипты в своей локальной истории браузера, а также кеширующие плагины могут сохранить эту сторону сервера скриптов. Если версия обновлена ​​должным образом, новые скрипты будут доставлены. Если вы удалите аргумент запроса ver, устаревшие скрипты будут доставлены вашим клиентам (возможно, в течение длительного времени), что вызывает множество неприятностей и жалоб клиентов. Не делайте этого.

Кроме того, существует две проблемы, которые я распознают со сценарием:

1) Приоритет фильтра удалить должен быть последним, так что он не будет перезаписана другими плагинами поэтому набор аргументов 4 100 (https://developer.wordpress.org/reference/functions/add_filter/)

function remove_cssjs_ver($src) { 
    if(strpos($src, '?x')) { 
    $src = str_replace('?x81224','',$src); 
} 
return $src; 
} 
add_filter('style_loader_src', 'remove_cssjs_ver', 100, 2); 
add_filter('script_loader_src', 'remove_cssjs_ver', 100, 2); 

2) Откуда вы? X81224? Найдите плагин/функцию, которая создает это странное приложение и узнает, почему. Это выглядит как сделанная на заказ идея в качестве замены аргумента запроса «ver».

В целом я бы сказал, что не удастся удалить строки запроса из статических ресурсов, как правило, для этого есть веская причина. Не знаю, почему они рекомендуют. Если файл кэшируется с строкой запроса, он не замедлит работу сайта (или, по крайней мере, я не могу придумать причину, почему).

Смежные вопросы