0

我结合使用LiipImagineBundle 1.6.0,一切正常,但他不保存缓存文件。图像保存正确,因此不存在.Symfony 3.1.3VichUploaderBundle 1.2.0devprodVichUploaderBundle

配置.yml:

vich_uploader:
    db_driver: orm # or mongodb or propel or phpcr
    mappings:
            pop_image:
                uri_prefix:         /images/pops
                upload_destination: %kernel.root_dir%/../web/images/pops
            ad_image:
                uri_prefix:         /images/ads
                upload_destination: %kernel.root_dir%/../web/images/ads
liip_imagine:
    resolvers:
       default:
          web_path: ~

    filter_sets:
        cache: ~
        square:
            quality: 75
            filters:
                thumbnail: { size: [400, 400], mode: outbound }

路由.yml:

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

枝条:

...
<div class="image">
   <img src="{{ vich_uploader_asset(pop,'imageFile')|imagine_filter('square') }}" alt="{{ pop.question }}" width="100%" class="grayscale" />
   <span class="image-question">{{ pop.question }}</span>
</div>
...
4

1 回答 1

0

我面临着类似的问题,但LiipImagineBundle 2.1on Symfony 4.2。就我而言,我用于缓存图像的 Nginx 规则覆盖了LiipImagineBundle.

    location / {
        # try to serve file directly, fallback to index.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/index\.php(/|$) {
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        # When you are using symlinks to link the document root to the
        # current version of your application, you should pass the real
        # application path instead of the path to the symlink to PHP
        # FPM.
        # Otherwise, PHP's OPcache may not properly detect changes to
        # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
        # for more information).
        fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        # Prevents URIs that include the front controller. This will 404:
        # http://domain.tld/index.php/some-path
        # Remove the internal directive to allow URIs like this
        internal;
    }

    # Cache images.
    location ~* \.(?:ico|css|gif|jpe?g|png)$ {
        expires 30d;
        add_header Vary Accept-Encoding;
        access_log off;
    }

所以,我添加了一个单独的位置/media/cache/resolve/

    location ^~ /media/cache/resolve/ {
        try_files $uri /index.php$is_args$args;
    }

^~前缀告诉 Nginx 停止寻找其他位置(更多关于Nginx位置优先级)。

于 2019-09-30T13:11:25.410 回答