Друпал nginx миниатюры и 404 ошибка

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

Аватар пользователя Ne0 Ne0 31 октября 2018 в 12:59

Здравствуйте разрабатываю сайт на друпал 7,59 имеется проблема с генерацией миниатюр они не создаются при этом в консоли js вываливается ошибка 404 not found Failed to load resource: the server responded with a status of 404 (Not Found)
ниже сам путь по которому идет запрос к файлу

<img property="schema:image" src="/sites/default/files/styles/thumbnail/public/2018-10/69f7fcf676c12a028b76c6cda8c293f6.jpg?itok=If-o-3em" width="94" height="100" alt="1112" typeof="foaf:Image" class="image-style-thumbnail">

однако лькуда берется эта часть кода не знаю ?itok

друпал 7 при этом картинки нормально отображаются если в настройках отображения указать оригинальное изображение, а если задать какую то миниатюру, то вываливаеится выше приведенный глюк

в друпал 8 (чистая установка вообще ни 1 молуля нет стороннего ) происходит то же самое, но в случае с друпал 8 даже оригинальные изображения не отображаются

права на все папки 777 права пользователя 644

Комментарии

Аватар пользователя gun_dose gun_dose 31 октября 2018 в 14:09

?itok - это токен кэша. Например, если вы отредактируете стиль изображения, этот токен поменяется и браузер по изменившемуся токену поймёт, что картинку нужно загрузить заново, а не брать из кэша.

И если у вас миниатюры не создаются, то nginx тут ни при чём. Смотрите журнал ошибок. Скорее всего неверные права на files. Либо, что очень редко, не включено расширение gd для php.

Аватар пользователя Ne0 Ne0 31 октября 2018 в 14:20

gun_dose wrote:

И если у вас миниатюры не создаются, то nginx тут ни при чём

Но, что то же должно быть причем, а так как права на папки 777 стоят у меня на всю папку files и все вложенные то с правами доступа проблем нет, библиотека GD включена ее и права на папки и файлы я проверил в 1 очередь, касаемо журнала ошибок единственную ошибку, что у меня выползает я обозначил, других ошибок нет.

Аватар пользователя Ne0 Ne0 31 октября 2018 в 14:50

gun_dose wrote:

А в папках картинки физически появляются?

нет, у меня согласно консоли путь куда обращается сервер выглядит так /thumball/books/covers так вот этих папок не создается. Я уж думал прав не хватает пользователю из под которого работает друпал создал ему отдельного дал рута и толку ноль

Аватар пользователя Andruxa Andruxa 31 октября 2018 в 16:23

Чтобы сгенерился пресет - надо передать запрос в друпал.
После этого, когда файл создастся - nginx будет отдавать его напрямую мимо друпала.
Поэтому, надо отдавать статику через try_files:

  location ~* \.(jpeg|jpg|png|gif|ico)$ {
    try_files $root_path @backend;
  }
Аватар пользователя Ne0 Ne0 31 октября 2018 в 16:54
        # Additional website
        server {
                listen 80;
                server_name sattarov.online www.sattarov.online;
                #charset        utf-8;
                server_name_in_redirect off;

                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        Host $host;

                set $proxyserver        "http://127.0.0.1:8887";
                set $imcontenttype      "text/html; charset=utf-8";
                set $docroot            "/home/bitrix/ext_www/sattarov.online";

                index index.php;
                root /home/bitrix/ext_www/sattarov.online;

                # Redirect to ssl if need
                if (-f /home/bitrix/ext_www/sattarov.online/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }

                # Include parameters common to all websites
                include bx/conf/bitrix.conf;

location @rewrite {
    rewrite ^/(.*)$ /index.php?q=$1;
}

location ~ ^/home/bitrix/ext_www/sattarov.online/sites/.*/files/styles/ {
    try_files $uri @rewrite;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        try_files $uri @rewrite;
        expires max;
        log_not_found off;
    }

        }

       

вот так у меня выглядит весь файл настроек nginx
если подставлять подобный блок

 location ~* \.(jpeg|jpg|png|gif|ico)$ {
    try_files $root_path @backend;
  }

то сайт целеком отваливается

Аватар пользователя Ne0 Ne0 10 ноября 2018 в 20:04

Спасибо помогли.

Я что бы не сорить спрошу еще вопросик прямо в этой ветке

теперь есть одна мелкая, но весьма противная особенность, у меня есть содержимое типа Х в котором есть слайдер картинки оноего сохраняются в sites/default/files/sliders/products_slider/ Сейчас слайдеры всех материалов складируются в указанную папку, однако было бы весьма не плохо если бы путь сейва картинок выглядел так: sites/default/files/sliders/products_slider/node:title решить задачу пробовал подстановкой в путь сейва токен вида [current-page:title]
Однако нужного эффекта не достиг

Аватар пользователя gun_dose gun_dose 10 ноября 2018 в 20:10

Потому что текущая страница - это страница редактирования материала. У вас как раз токен должен быть вроде [node:title]

Аватар пользователя Ne0 Ne0 10 ноября 2018 в 23:43

Там, это в списке доступных токенов, 1 поле у меня относится к Типу материала продукт тип поля избражение виджет соответственно тоже изображение, формат отображаения вьюс слайдшоу у этого поля
вторая картинка относится уже к термину таксономии словаря

есть словарь персоны:
внутри него есть термин Актеры
есть термин Авторы
Все это выводтся на странице Страница персон
у каждого термина есть дочерние термины
по клику на родительский термин по первой ссылке вы попадаете на страницу с дочерними подтерминами
например: Страница предметного указателя по авторам

если кликнуть на фото или на термин таксономии вы попадаете на страницу с биографической справкой о персоне
Пример
так вот мне надо, что бы фотографии авторов и иных персон грузились примерно по такому шаблону persons/authors
для терминов из родительского термина авторы в папку authors фотки актеров соответственно в persons/actors, и тд

соответственно во вкладке admin/structure/taxonomy/persons_taxonomy_term/fields/field_author_photo есть пункт Просмотр доступных токенов. и вот именно там нету токенов относящихся к терминам таксономии или словарям (хотя картинка именно к словарю и относится

аналогично дела обстаят с типом материала продукт в этом типе материалов используется слайдер и мне надо реализовать загрузку картинок этого слайдера по принципу /products/[node title] Что бы изображения слайдера каждой ноды загружалось в свою папку однако в данном случае на странице admin/structure/types/manage/product-content-type/fields/field_product_slider доступных токенов аля нод тайтл как и в первом случае нету

Аватар пользователя Ne0 Ne0 12 ноября 2018 в 17:07

установлен, что бы решить задачу нужно было доставить еще 1 модуль ImageField Tokens, Еще раз спасибо за содействие.

Аватар пользователя Bafur Bafur 31 октября 2018 в 18:50

Была такая же проблема. Хостер сказал что у них запрещена директива:
Options +FollowSymLinks
Она по умолчанию находится в файле .htaccess в папке файловой системы (обычно sites/default/files).
Нужно было заменить на:

Options None
Options +SymLinksIfOwnerMatch
Аватар пользователя Ne0 Ne0 31 октября 2018 в 19:20

Bafur wrote:

Она по умолчанию находится в файле .htaccess в папке файловой системы (обычно sites/default/files).

Нужно было заменить на:

Options None

Options +SymLinksIfOwnerMatch


Bafur wrote:

Была такая же проблема. Хостер сказал что у них запрещена директива:
Options +FollowSymLinks

Она по умолчанию находится в файле .htaccess в папке файловой системы (обычно sites/default/files).

Нужно было заменить на:
Options None

Options +SymLinksIfOwnerMatch


Bafur wrote:

Была такая же проблема. Хостер сказал что у них запрещена директива:
Options +FollowSymLinks

Она по умолчанию находится в файле .htaccess в папке файловой системы (обычно sites/default/files).

Нужно было заменить на:
Options None

Options +SymLinksIfOwnerMatch


эти директивы у меня прописаны