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 许可获得许可。