我在LiipImagineBundle 1.6.0
上使用Symfony 3.1.3
并结合VichUploaderBundle 1.2.0
,dev
上的一切正常,但在prod
上他并没有保存缓存文件。图像正确保存,因此VichUploaderBundle
没有问题。
config.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 }
的routing.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>
...
答案 0 :(得分:0)
我遇到了类似的问题,但是LiipImagineBundle 2.1
上有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 location priority的更多信息)。