Symfony2 LiipImagineBundle не работает на Nginx

Я просто пытаюсь заставить работать LiipImagineBundle.

#app/config/confiy.yml
# liip_imagine Configuration
liip_imagine:
resolvers:
    default:
        web_path:
            web_root: %kernel.root_dir%/../web
            cache_prefix: media/cache

loaders:
    default:
        filesystem:
            data_root: %kernel.root_dir%/../web/

#....
#...
filter_sets:
    medium:
        quality:              100
        filters:
            thumbnail: { size: [280, 280], mode: outbound }
#....
#...
# Twig Configuration
twig:
    debug:            "%kernel.debug%"
    strict_variables: "%kernel.debug%"
    globals:
            upload_folder: "uploads/"

при использовании:

app/console liip:imagine:cache:resolve /uploads/photos/3/01.jpg  --filters=medium

это работает нормально.

Но после использования:

#src/Hy/PhotoBundle/Resources/views/Photo/index.html.twig
  {% for entity in pagination %}
        {% set photo=upload_folder~entity.fileManaged.uri %}
         <img src="{{ asset(photo | imagine_filter('medium')) }}" />
   {% endfor %}

изображение не отображается, путь просто не найден.

Какие-нибудь советы?

http://i.stack.imgur.com/rVbwv.png


person Brian    schedule 25.10.2015    source источник


Ответы (1)


Конфигурация nginx по умолчанию будет перенаправлять URL-адреса, заканчивающиеся на jpg, gif и т. д., в файловую систему, а не в приложение. Вы должны улучшить свою конфигурацию nginx следующим образом:

location @rewriteapp {
    rewrite ^(.*)$ /app.php/$1 last;
}

location ~ \.(png|jpeg|jpg|gif)$ {
    if (-f $request_filename) {
        expires 365d;
        access_log off;
    }
    try_files $uri @rewriteapp;
}
person indapublic    schedule 18.04.2017