Здравствуйте разрабатываю сайт на друпал 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
Комментарии
возможно что-то не так с конфигом nginx:
https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/
?itok - это токен кэша. Например, если вы отредактируете стиль изображения, этот токен поменяется и браузер по изменившемуся токену поймёт, что картинку нужно загрузить заново, а не брать из кэша.
И если у вас миниатюры не создаются, то nginx тут ни при чём. Смотрите журнал ошибок. Скорее всего неверные права на files. Либо, что очень редко, не включено расширение gd для php.
Но, что то же должно быть причем, а так как права на папки 777 стоят у меня на всю папку files и все вложенные то с правами доступа проблем нет, библиотека GD включена ее и права на папки и файлы я проверил в 1 очередь, касаемо журнала ошибок единственную ошибку, что у меня выползает я обозначил, других ошибок нет.
А в папках картинки физически появляются?
нет, у меня согласно консоли путь куда обращается сервер выглядит так /thumball/books/covers так вот этих папок не создается. Я уж думал прав не хватает пользователю из под которого работает друпал создал ему отдельного дал рута и толку ноль
А журнал ошибок точно смотрели?
Чтобы сгенерился пресет - надо передать запрос в друпал.
После этого, когда файл создастся - nginx будет отдавать его напрямую мимо друпала.
Поэтому, надо отдавать статику через try_files:
try_files $root_path @backend;
}
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
если подставлять подобный блок
try_files $root_path @backend;
}
то сайт целеком отваливается
Ну да, не определены ни $root_path ни @backend;
try_files $uri @rewrite; - это есть в конфиге
Спасибо помогли.
Я что бы не сорить спрошу еще вопросик прямо в этой ветке
теперь есть одна мелкая, но весьма противная особенность, у меня есть содержимое типа Х в котором есть слайдер картинки оноего сохраняются в sites/default/files/sliders/products_slider/ Сейчас слайдеры всех материалов складируются в указанную папку, однако было бы весьма не плохо если бы путь сейва картинок выглядел так: sites/default/files/sliders/products_slider/node:title решить задачу пробовал подстановкой в путь сейва токен вида [current-page:title]
Однако нужного эффекта не достиг
Потому что текущая страница - это страница редактирования материала. У вас как раз токен должен быть вроде [node:title]
На node title Он ругается говорит недопустимый токен там вообще токинов про ноды нет)
А там - это где? К какой сущности относится поле, в которое грузите файлы?
Там, это в списке доступных токенов, 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 доступных токенов аля нод тайтл как и в первом случае нету
Модуль filegield paths у вас установлен?
установлен, что бы решить задачу нужно было доставить еще 1 модуль ImageField Tokens, Еще раз спасибо за содействие.
Чистый у меня журнал
Была такая же проблема. Хостер сказал что у них запрещена директива:
Options +FollowSymLinks
Она по умолчанию находится в файле .htaccess в папке файловой системы (обычно sites/default/files).
Нужно было заменить на:
Options +SymLinksIfOwnerMatch
эти директивы у меня прописаны