跳到内容

Web路径解析器

编辑此页

此缓存解析器 (WebPathResolver) 实现了针对本地、基于 Web 路径设置的缓存解析。这意味着图像将被缓存在本地文件系统的 Symfony 应用程序的 Web 路径中。

生成的 Web 路径是通过考虑多种因素计算得出的,包括 Symfony HTTP 内核提供的请求上下文

提示

请求上下文最常用于确定最终 URL 使用的 HTTP 方案。如果您使用代理来卸载 TLS 流量解密,并且需要解析器生成安全 URL,您将需要适当配置 Symfony 的受信任代理。如果您在模板中使用嵌入式控制器,则必须将 localhost 添加到受信任代理配置中。

此外,如果生成的 URL 的端口与标准 HTTP/HTTPS (80/443) 端口不同,则请求上下文也用于确定其端口。

配置

1
2
3
4
5
6
7
liip_imagine:
    resolvers:
       profile_photos:
          web_path:
            # use %kernel.project_dir%/web for Symfony prior to 4.0.0
            web_root: "%kernel.project_dir%/public"
            cache_prefix: "media/cache"

有几个配置选项可用

  • web_root - 必须是您应用程序 Web 根目录的绝对路径。这用于确定将生成的图像文件放在哪里,以便您的 Web 服务器可以获取它们,而不是在下次请求它们时将请求转发到 Symfony。默认值是项目目录,Symfony >= 4 为 public,旧 Symfony 版本为 web。默认值: %kernel.project_dir%/(public|web)
  • cache_prefix - Web 根目录中应缓存生成图像的相对路径。这应该是一个文件夹,以避免缓存图像使您的 Web 根目录混乱。默认值: /media/cache

用法

配置 WebPathResolver 后,您可以使用以下配置将其设置为 LiipImagineBundle 的默认缓存解析器。

1
2
3
4
# app/config/config.yml

liip_imagine:
    cache: profile_photos

在特定过滤器集上配置解析器

或者,您可以使用以下配置将 WebPathResolver 设置为特定过滤器集的缓存解析器。

1
2
3
4
5
6
7
8
9
# app/config/config.yml

liip_imagine:
    filter_sets:
        cache: ~
        my_thumb:
            cache: profile_photos
            filters:
                # the filter list
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可获得许可。
目录
    版本