Временные файлы изображений

Главные вкладки

Аватар пользователя i_byte i_byte 17 декабря 2019 в 19:36

Drupal 7
Не знаю когда проблема появилась - давно не занимался сайтом, поэтому сразу накатил несколько обновлений, и только потом обнаружил проблему. Но, возможно, она появилась раньше.
А заметил, что перестала работать Brilliant Gallery. Но если бы только она. Когда создается материал и у поля Image установлен стиль изменения изображения, например, Thumbnail, то картинка тоже не отображается. В соответствующих папках для уменьшенных изображений, что Brilliant Gallery, что styles/thumbnail/public - пусто, хотя ссылки на них создаются. Сами папки также создаются если их удалить вручную, так что у Drupal права на запись есть. И в логах никаких ошибок не вижу.
А где еще смотреть?- ума не приложу.
Т.е. директории для временных картинок есть, ссылки есть - директории пустые.

Лучший ответ

Аватар пользователя i_byte i_byte 18 декабря 2019 в 19:29

Всем спасибо за наводки!
Покопался в чаво хостера и...
...как по мне, найдены двое виновных: Drupal и хостер. Первый, потому, что требует в .htaccess

Options +FollowSymLinks

а второй, потому как не согласен и требует сменить:

директиву Options +FollowSymLinks на Options +SymLinksIfOwnerMatch

Пменял как пишет хостер и заработало.

Еще раз всем спасибо.

Комментарии

Аватар пользователя Semantics Semantics 17 декабря 2019 в 19:54

Почему бы не открыть в браузере ту картинку, которая не отображается?
Как минимум, будет понятно, проблема на стороне друпала или хостер идиот

Аватар пользователя i_byte i_byte 17 декабря 2019 в 20:16

Semantics wrote:
Почему бы не открыть в браузере ту картинку, которая не отображается?
Как минимум, будет понятно, проблема на стороне друпала или хостер идиот

Ну как же ее открыть, если ее нет?!
Картинка test_image.jpg в исходном размере в sites/default/files есть, напрямую открывается, но вот этого нет на диске:
<img src="https://my.site/sites/default/files/styles/thumbnail/public/test_image.jpg?itok=5ckAuaCQ" class="pure-img" width="100" height="73" alt="" title="" data-pagespeed-url-hash="3087977367" onload="pagespeed.CriticalImages.checkImageForCriticality(this);">
Каталог для миниатюры пустой.

Аватар пользователя Semantics Semantics 17 декабря 2019 в 22:09

Ну как же ее открыть, если ее нет?!

Браузером и открыть.
Вот ссылка https://my.site/sites/default/files/styles/thumbnail/public/test_image.j...
И в браузере будет что-то, да написано.

И вообще у вас mod_pagespeed или иной тюнинг, так что начните с него

Аватар пользователя i_byte i_byte 17 декабря 2019 в 22:54

Semantics wrote:

Ну как же ее открыть, если ее нет?!

Браузером и открыть.
И в браузере будет что-то, да написано.
И вообще у вас mod_pagespeed или иной тюнинг, так что начните с него

Спасибо за ответ.

Не открывается. Так как каталог, повторяю, на сервере пустой. Браузер пишет про несовместимость .htaccess, хотя в каталоге для миниатюр его нет, а в files/ файл .htaccess согласно требованиям бла-бла-бла не помню каким, но ругалось в отчетах без него.
А что такое mod_pagespeed ? Это на сервере? Или это в Drupal? Сервер у хостера и менять через админку можно мало чего в настройках php и apache.

Аватар пользователя i_byte i_byte 17 декабря 2019 в 23:07

ivnish wrote:
У вас вот это подозрительно в коде:
onload="pagespeed.CriticalImages.checkImageForCriticality(this);"

Это, скорее всего, тема 0 point, так как в ее описании есть такое:
PageSpeed Insights optimisation
Больше нигде упоминание про pagespeed не нашел.

Аватар пользователя Orion76 Orion76 17 декабря 2019 в 23:22

Каталог и должен быть пустым.. Картинка определенного стиля генерируется при первом ее запросе.
Т.е. вэбсервер должен сначала попытаться отдать картинку из папки, а если ее еще нет, то передать запрос drupal-у.
Drupal сгенерирует картинку, положит ее в нужную папку и отдаст браузеру.
Последующие разы картинка уже будет отдаваться из папки.

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

Пример части конфига для nginx, отвечающего за данную "процедуру"

 location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        try_files $uri @rewrite;
        expires max;
        log_not_found off;
    }
Аватар пользователя Semantics Semantics 18 декабря 2019 в 0:46

Да вообще всё равно, пустой каталог или не пустой. Сначала изображение нужно сгенерировать, потом положить в директорию.
В браузере что?
Ошибка .htaccess? Дайте её текст, как минимум.

Вы если лучше знаете, то зачем спрашиваете?
Если хотите консультации, то лучше отвечайте на вопросы

Аватар пользователя i_byte i_byte 18 декабря 2019 в 19:29

Всем спасибо за наводки!
Покопался в чаво хостера и...
...как по мне, найдены двое виновных: Drupal и хостер. Первый, потому, что требует в .htaccess

Options +FollowSymLinks

а второй, потому как не согласен и требует сменить:

директиву Options +FollowSymLinks на Options +SymLinksIfOwnerMatch

Пменял как пишет хостер и заработало.

Еще раз всем спасибо.