将图像转换为 .webp 格式的扩展不起作用

问题描述 投票:0回答:2

我正在基于本地 Composer 安装 TYPO3 v12.4(我无法更新到 v13),并安装了扩展 'plan2net/webp' 将我的所有图像转换为

.webp
格式。但由于某种原因,扩展程序根本不转换任何图像。

这是我尝试使扩展工作的方法:

  1. 将 webp 添加到普遍允许的文件格式中:

    $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] .= ',webp';
    
  2. 通过

    安装扩展
    ddev composer require "plan2net/webp"
    
  3. 检查后端模块,扩展已安装且稳定。

  4. 按照扩展手册,我刷新了TYPO3和PHP缓存,并清除了维护模块中已处理的文件。还更新了数据库结构**。此时**我希望扩展程序生成每个图像的副本并将其保存为

    webp
    。但是,如果我检查已处理文件夹中的文件,情况并非如此。

  5. 然后我将其添加到我的 .htaccess 文件中:

    <IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteCond %{HTTP_ACCEPT} image/webp
     RewriteCond %{REQUEST_FILENAME} (.*)\.(png|gif|jpe?g)$
     RewriteCond %{REQUEST_FILENAME}\.webp -f
     RewriteRule ^ %{REQUEST_FILENAME}\.webp [L,T=image/webp]
    </IfModule>
    

    是的,mod_rewrite.c 已启用。

  6. 在 htaccess 文件的底部我添加了:

    <IfModule mod_headers.c>
        <FilesMatch "\.(png|gif|jpe?g)$">
            Header append Vary Accept
        </FilesMatch>
    </IfModule>
    
  7. 最后一步是刷新 TYPO3 和 PHP Cache,并再次清除已处理的文件。

    我错过了什么?

typo3 webp typo3-12.x
2个回答
0
投票

@LoreenT。如果您查看您的资产和已处理的文件夹,是否存在真正存在的图像的 .webp 副本?然后处理就开始工作了。 然而最重要的是:看起来你正在使用 ddev,它通常是 nginx 而不是 apache。因此,如果是 nginx,您的 htaccess 规则将在 ddev 中被忽略。但你可能只是更新你的 ddev,最新版本已经在其 nginx 配置中包含了正确的 .webp 路由。


0
投票

您的系统是否符合 webp 的要求

您可以使用您安装的 Imagemagick 或 GraphicsMagick 如果支持 webp,则已用于 TYPO3 图像处理(请参阅 如下)或者您可以使用您的设备上可用的任何其他外部二进制文件 服务器(例如 cwebp)。

您可以测试 GraphicsMagick 的支持,例如:

gm version | grep WebP

(应该返回

yes

或使用 ImageMagick ,例如:

convert version | grep webp

(应返回支持的格式列表,包括

webp

您可以通过

webp
查看
phpinfo()
的支持情况:


DDEV

对于较旧的 ddev,您必须将

webimage_extra_packages: [webp]
添加到 config.yaml 中。

Imagemagick 和 gd 似乎都在最新版本的 ddev 中包含开箱即用的 webp 支持。

https://github.com/ddev/ddev/issues/1780

© www.soinside.com 2019 - 2024. All rights reserved.