如何在不裁剪或处理的情况下输出 og:image (sysext:seo)?

How to output og:image (sysext:seo) without cropping or processing?

如果您在页面属性中存储 Open Graph 图片,它会自动裁剪为 1.91 / 1 的比例,即使您上传的图片正好符合这些比例,它仍会被重新处理(并略微修剪) ).

我已经设法让裁剪工具接受默认的自由比例:

/ext/sitepackage/Configuration/TCA/Overrides/pages.php

<?php
defined('TYPO3') or die();

$GLOBALS['TCA']['pages']['columns']['og_image']['config']['overrideChildTca']['columns']['crop']['config'] = [
    'cropVariants' => [
        'social' => [
            'title' => 'Social media',
            'cropArea' => [
                'x' => '0.0',
                'y' => '0.0',
                'width' => '1.0',
                'height' => '1.0'
            ],
           'allowedAspectRatios' => [
                'NaN' => [
                    'title' => 'Free',
                    'value' => 0.0
                ],
            ],
        ],
    ],
];

这会在数据库中创建以下条目(sys_file_reference,列裁剪):

{"social":{"cropArea":{"x":0,"y":0,"width":1,"height":1},"selectedRatio":"NaN","focusArea":null}}

我觉得不错。

不过,TYPO3 并没有输出我已经优化过的原始图像 (fileadmin/media/1200x630.png),而是输出图像处理器生成的图像 (/fileadmin/processed/7/ a/csm_….png ,与原始像素尺寸相同)。作为测试,我还手动从数据库中删除了裁剪条目,但仍然没有输出原始图像的 URL。

我怎样才能避免这种情况?

附录:我创建了一个 bug report

始终处理社交图像(开放图和推特)。参见 https://github.com/TYPO3/typo3/blob/main/typo3/sysext/seo/Classes/MetaTag/MetaTagGenerator.php#L68

您可以为 og:image 创建自己的 MetaTagManager,示例如下:https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/MetaTagApi/Index.html#creating-your-own-metatagmanager.

不知道这是否是一个好方法,因为关于开放图形图像的尺寸有特殊规则,请参阅 https://simplified.co/blog/design-hacks/open-graph-image-everything-you-need-to-know/