Liipimagine Bundle — изображения не кэшируются

Я получил проект и пытаюсь запустить его в Docker со средой NGINX. Но похоже у меня баг с LiipImagine. В проекте используются Symfony 4 и LIIPImagine версии 2.0.x-dev.

Страница должна отображать изображения из кеша, пример URL изображения: https://localhost:8443/media/cache/live_feed_message/images/live_feed_message/5c486df1a78fe_lama-750389_960_720.jpg

Каталог существует с правами:

drwxr-xr-x 2 1000 1000 4069 Jan 23 13:35 live_feed_message

Все изображения хранятся в папке public/images/live_feed_message/, а в public/media/cache/live_feed_message/images/live_feed_message соответствующего изображения нет.

Я понял, что если я использую команду из LiipImagine: php app/console liip:imagine:cache:resolve relative/path/to/image1.jpg

Это дает такой результат:

http://localhost/media/cache/quizz_thumbnail/images/live_feed_message/name_file.jpg
http://localhost/media/cache/quizz_sponsors_icon/images/live_feed_message/name_file.jpg
http://localhost/media/cache/live_feed_message/images/live_feed_message/name_file.jpg

И тогда соответствующее изображение существует в кеше (public/media/cache/live_feed_message/images/live_feed_message), и изображение правильно отображается на странице...

На вкладке сети из консоли разработки я проверил ответ на HTTP-запрос. И я получаю этот ответ Symfony:

Unable to write to the "/srv/api/public/media/cache/live_feed_message/images/live_feed_message" directory.

Кто-нибудь знает, в чем может быть дело?

Уже 2 дня я не могу решить эту проблему, поэтому спасибо за помощь!

PS: я переопределил маршрут из routing.yaml из пакета. В пути было /resolve, и я переопределил его (на самом деле я удалил /resolve из пути liip_imagine_filter):

_liip_imagine:
    resource: "@LiipImagineBundle/Resources/config/routing.yaml"


liip_imagine_filter:
    path:  /media/cache/{filter}/{path}
    defaults:
        _controller: '%liip_imagine.controller.filter_action%'
    methods:
        - GET
    requirements:
        filter: '[A-z0-9_-]*'
        path: .+

person Alexis    schedule 24.01.2019    source источник


Ответы (1)


Возможно, вам стоит попробовать быть более снисходительным с chmod -R 777 public/images. В локальной среде это не имеет большого значения, вы должны точно настроить свои разрешения в процессе производства. Это, вероятно, устранит ваши ошибки, и вы сможете продолжить кодирование.

Фактическое разрешение на производство будет 755 IIRC.

person Florent Destremau    schedule 24.01.2019
comment
Я искал проблему в конфигурации пакета, но, в конце концов, я использовал chmod -R 777, но не для public/images. Я использовал его в папке public/media/cache. Потому что старается писать туда, а не в паблик/изображения. Я не знаю, лучшая ли это практика, но она работает... - person Alexis; 24.01.2019
comment
да, кеш находится в /cache, но загруженные изображения находятся в /images. Фильтры изображений не хранятся в том же каталоге, что и источники. Я думаю, что хорошо отделять то, что загружается, от того, что генерируется. - person Florent Destremau; 25.01.2019