Я использую Symfony 3.2 с LiipImagineBundle 1.8.0 и Nginx с php7 fpm в производстве. В desenv веб-сервер является встроенным сервером php. В desenv работает нормально, а каталог кеша создается в веб-папке, но в работе нет, и Symfony возвращает 404 для изображений. Есть идеи, что это может быть? Это моя конфигурация:
Nginx
location / {
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/app\.php(/|$) {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.(png|jpeg|jpg|gif)$ {
if (-f $request_filename) {
expires 18h;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
access_log off;
}
try_files $uri @rewriteapp;
}
Symfony Config
liip_imagine:
resolvers:
default:
web_path:
web_root: "%kernel.root_dir%/../web"cache_prefix: "media/cache"
filter_sets:
cache: ~
slide:
quality: 80
filters:
thumbnail: { size: [364, 244]}
watermark:
image: Resources/data/logo.png
size: 0.2
position: bottomleft
Symfony Routing
_liip_imagine:
resource: "@LiipImagineBundle/Resources/config/routing.xml"
Использование фильтра Twig
<img src="{{ asset( 'bundles/app/uploads/' ~ image.id ~ '/' ~ image.file ) | imagine_filter('slide') }}" />
Разрешения в медиа-папке созданы мной.
drwxrwxrwx+ 3 root root 4096 Aug 15 19:05 media
Я нашел проблему.
В конфиге правильное значение cache_prefix должно содержать косую черту
liip_imagine:
resolvers:
default:
web_path:
web_root: "%kernel.root_dir%/../web"cache_prefix: "/media/cache"
Других решений пока нет …