Добрый день, помогите решить задачу. У меня Drupal 7.31 и в конце всех стилей изображений вот такого рода окончания ?itok=sTClOItK, я нашел что это своего рода защита, но из-за этого гугл совсем не хочет кешировать изображения на сайте. Находил решения такого рода
1. Установить модуль https://www.drupal.org/project/image_allow_insecure_derivatives
2. Добавить строку в seting.php $conf['image_allow_insecure_derivatives'] = TRUE;
Но это не помогает, видимо решение для версий ниже.
Подскажите или помогите, так как вопрос очень важный. Готов даже заплатить за решение в таком случаи пишите в приват.
Комментарии
https://www.drupal.org/node/2089789
Спс помогло, если кому интересно добавил к модулю https://www.drupal.org/project/image_allow_insecure_derivatives в файле image_allow_insecure_derivatives.module вниз
<?php
$parts = drupal_parse_url($uri);
function image_allow_insecure_derivatives_preprocess_image(&$vars) {
// If there is really a path and the image is processed as image style, we
// remove the ?tok=... part from the url.
if (isset($vars['path']) && !empty($vars['style_name'])) {
$vars['path'] = image_allow_insecure_derivatives_image_style_url_detok($vars['path']);
}
}
function
image_allow_insecure_derivatives_image_style_url_detok($uri) {// Do not change the url if insecure derivatives are not allowed.
$insecure = variable_get('image_allow_insecure_derivatives', FALSE);
if (!$insecure) {
return $uri;
}
// We remove the itok from the query.
if (isset($parts['query'][IMAGE_DERIVATIVE_TOKEN])) {
unset($parts['query'][IMAGE_DERIVATIVE_TOKEN]);
}
// There should not be any fragment or query, so we simply can return the
// already processed path.
if (empty($uri['query']) && empty($uri['fragment'])) {
return $parts['path'];
}
// Else build the path again.
return url($parts['path'], $parts);
} ?>
Сбросил кэш и заработало.
settings.php
<?php
$conf['image_suppress_itok_output'] = TRUE;
$conf['image_allow_insecure_derivatives'] = TRUE;
?>
ну и кеш сбросьте
Именно вот так и решается - 2мя строками. Модуль ставить не нужно.
Модуль - filefield_paths -
https://www.drupal.org/project/filefield_paths
ФАЙЛ - filefield_paths.module
// Newer versions of the Image module add an 8 character token which is
// required if the image style hasn't been generated yet.
$itok = '';
if (defined('IMAGE_DERIVATIVE_TOKEN')) {
$itok = '((?:[\?|&](?:\S+?&)*|(?:%3F|%26)(?:\S+?%26)*)' . IMAGE_DERIVATIVE_TOKEN . '(?:=|%3D)(\S{8}))*';
}
// Build regular expression pattern.
$pattern = "/({$prefixes})({$styles})*({$paths}){$itok}/";
Имееться - $itok =
Эта функция генерирует ключ в системном модуле - image.module
function image_style_path_token
А какие варианты для Drupal 8/9?
settings.php
А что там прописать? Ссылку на документацию можно? Или что в Гугл вбить чтоб на документацию перейти?
Попробуй
$config['image.settings']['suppress_itok_output'] = TRUE;
Не забудь сбросить кэш
Спасибо!