Это я туплю или все же что то с ядреным модулем Image в D7, а именно не создаются пресеты.
Значит так:
1. Добавляю к типу материалу поле типа Image (Изображение) виджет (Изображение)
2. Устанавливаю отображения поля
метка (скрыто) размер(Medium) тип (ссылка на файл)
3. Пересбрасываю пресеты
4. Прикрепляю изображение к ноде
сам файл загружатся в sites/default/files/field/image
a пресеты не создаются
На сколько я понимаю для прикрепленных полей изображения для всех пресетов должны создаваться каталоги типа
sites/default/files/styles/пресет/public/field/image
- так вот они не создаются
причем для примера ядра каталоги и файлы в нем создаются
- имеется ввиду sites/default/files/styles/пресет/public/modules/image/sample.png
Что я делаю не так и почему не едут лыжи ...
Решено (частично):
Пришлось отдебажить модуль Image, но как всегда проблема оказалась не там (т.е. не в Друпале)...
Проблема оказалась в кэшировнии nginx-ом изображений пока отключил кэшировние, пресеты стали нормально создаваться ...
Но до конца все же проблема не решена, т.е. откуда растут ноги понятно но как и оставить кэширование и создание пресетов буду думать
( проблема в том что пресет создается в момент первого обращения к файлу с нужным пресетом,
например к файлу http://www.example.com/sites/default/files/styles/small/public/field/ima...,
nginx - честно говорит, что page not found и соответственно не передает на обработку в апач который бы в свою очередь запустил обработчик пресетов.),
Решение вижу в написании какого-либо правила для nginx-a, что если файл/страница не найдена то отдать обработку в апач,
может у нас в сообществе есть специалисты по nginx которые подскажут как его подстроить ?
(я конечно и сам еще поищу по просторам инета решение, но вдруг уже есть готовое)
Решено:
Может кому пригодиться!
На просторах инета найдено и адаптировано следующее решение:
Перед кодом (в файле настройки nginx) определющим общее кэширование статических файлов, вставляем следующий код:
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
break;
}
}
Комментарии
насчет 7 не знаю, но в 6 у меня пресеты не создавались из за наличия в имени файла различных символов
http://drupal.org/node/410200
а еще права на файлы
Спасибо. Решение пригодилось. Отдельное спасибо за разъяснение проблемы!
Но можно уточнить, данный код:
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
break;
}
}
делает исключение для всех файлов в упомянутом каталоге? Получается кеширование для них всегда не работает? Но ведь там рисунки, их много и они тяжелые.
Можно ли сделать решение, чтобы при первом лишь обращении такое исключение срабатывало, когда нужно сгенерировать картинку?
Оно именно так и работает, т.е. если файла не существует, то вызывается обработчик апача (посредством вызова страницы через ?q=), иначе просто отдается на откуп nginx
Спасибо за быстрый ответ. А если апатча нет? У меня Nginx + php5-fpm, настроенные вот по этому руководству http://habrahabr.ru/blogs/sysadm/113101/