Symfony 4-LiipImagine-如何清除缓存?

Symfony 4-LiipImagine-如何清除缓存?,symfony,Symfony,在symfony 4上,我使用LiipImagineBundle显示我的图像。 但我注意到缓存有问题。 我的配置是: # See dos how to configure the bundle: https://symfony.com/doc/current/bundles/LiipImagineBundle/basic-usage.html liip_imagine: # valid drivers options include "gd" or "gmagick" or "imagick

在symfony 4上,我使用LiipImagineBundle显示我的图像。 但我注意到缓存有问题。 我的配置是:

# See dos how to configure the bundle: https://symfony.com/doc/current/bundles/LiipImagineBundle/basic-usage.html
liip_imagine:
  # valid drivers options include "gd" or "gmagick" or "imagick"
  driver: "gd"
  filter_sets:
    cache: ~

    # the name of the "filter set"
    avatar_big:
      # adjust the image quality to 75%
      quality: 75

      # list of transformations to apply (the "filters")
      filters:
        # create a thumbnail: set size to 120x90 and use the "outbound" mode
        # to crop the image when the size ratio of the input differs
        thumbnail: { size: [120, 120], mode: outbound }
我的图片在:

public\images\avatar\

有没有办法自动清除缓存?我看到有订单要下,但我想知道我们是否可以自动化所有这些

如果您想删除imagine过滤器生成的缓存图像,那么LiipImagineBundle会向Symfony控制台添加一个命令来执行此操作:

php bin/console liip:imagine:cache:remove
如果没有任何参数,您将删除所有路径和所有过滤器的缓存图像

可以使用参数将删除范围缩小到所需的任何筛选器和路径,如下所示:

php bin/console liip:imagine:cache:remove path1 path2 --filters=thumb1 --filters=thumb2
这里有更多信息和示例:

如果要删除imagine过滤器生成的缓存图像,则LiipImagineBundle会向Symfony控制台添加一个命令,该命令可执行以下操作:

php bin/console liip:imagine:cache:remove
如果没有任何参数,您将删除所有路径和所有过滤器的缓存图像

可以使用参数将删除范围缩小到所需的任何筛选器和路径,如下所示:

php bin/console liip:imagine:cache:remove path1 path2 --filters=thumb1 --filters=thumb2
这里有更多信息和示例:

谢谢!如果要在删除或更新缓存映像时自动删除该映像,是否有解决方案?是的,您可以使用事件侦听器执行此操作。有一个基于Symfony的电子商务框架,叫做Sylius,它使用LiipImagineBundle,他们是这样做的:他们也使用KnpGaufretteBundle,因此您可能需要根据您的实现进行调整(即,您可能没有ImageUploaderInterface,您应该找到在文件系统中查找项目的方法)好的!我看到了这个操作,但突然间,为了让它工作,它必须能够访问图像的路径,这要归功于$image->getPath(),最后它在我的实体中获得了一个属性,该属性表示驻留在l'picture中的路径。这是基础映像的路径还是LiipImageBindle创建的路径?我如何实现这一点?这完全取决于您的实现。我的意思是谁在上传文件时生成路径。例如,如果使用VichUploaderBundle,则可以使用its获取图像的正确路径。如果您使用KnpGaufretteBundle,您可以使用您配置的适配器和/或文件系统来获得映像的正确路径!因此,如果我创建了一个侦听器,我可以通过VichUploader获得图像路径?谢谢!如果要在删除或更新缓存映像时自动删除该映像,是否有解决方案?是的,您可以使用事件侦听器执行此操作。有一个基于Symfony的电子商务框架,叫做Sylius,它使用LiipImagineBundle,他们是这样做的:他们也使用KnpGaufretteBundle,因此您可能需要根据您的实现进行调整(即,您可能没有ImageUploaderInterface,您应该找到在文件系统中查找项目的方法)好的!我看到了这个操作,但突然间,为了让它工作,它必须能够访问图像的路径,这要归功于$image->getPath(),最后它在我的实体中获得了一个属性,该属性表示驻留在l'picture中的路径。这是基础映像的路径还是LiipImageBindle创建的路径?我如何实现这一点?这完全取决于您的实现。我的意思是谁在上传文件时生成路径。例如,如果使用VichUploaderBundle,则可以使用its获取图像的正确路径。如果您使用KnpGaufretteBundle,您可以使用您配置的适配器和/或文件系统来获得映像的正确路径!那么,如果我创建一个侦听器,我可以通过VichUploader获得图像路径?