对于XML导出,我需要输出2个图像的绝对路径。 Image1位于/typo3conf/ext/app/Resources/Public/Images/image1.png 和Image2位于/uploads/tx_extensionname/image2.png
对于我的生活,我无法找到获得图像绝对路径的方法。我尝试了什么:
<f:uri.image absolute="1" src="EXT:app/Resources/Public/Images/image1.png"/>
返回以下错误:
Argument "absolute" was not registered.
我也试过f:uri.resource,它适用于image1,但是,当然,对于image2没有,因为没有extensionName。
任何提示?
答案 0 :(得分:5)
最近在TYPO3 7.6.0中添加了absolute
视图助手的f:uri.image
参数。请参阅changelog:
功能:#64286 - 为uri.image和图片viewHelper添加绝对网址选项
ImageViewhelper和Uri / ImageViewHelper获得了一个绝对的新选项。使用此选项,您可以强制ViewHelpers输出绝对URL。
我建议升级到TYPO3 7.6 。
如果您因任何原因无法做到这一点,您可以扩展f:uri.image
视图助手。下面的代码未经测试,但应该适用于6.2 LTS(我在7.6中借用了TYPO3\CMS\Extbase\Service\ImageService
中的部分代码):
namespace Vendor\ExtensionKey\ViewHelpers\Uri;
use TYPO3\CMS\Fluid\ViewHelpers\Uri\ImageViewHelper;
use TYPO3\CMS\Core\Utility\GeneralUtility;
class ImageViewHelper extends ImageViewHelper
{
public function render(
$src = null,
$image = null,
$width = null,
$height = null,
$minWidth = null,
$minHeight = null,
$maxWidth = null,
$maxHeight = null,
$treatIdAsReference = false,
$absolute = false
) {
$uri = parent::render($src, $image, $width, $height, $minWidth, $minHeight, $maxWidth, $maxHeight, $treatIdAsReference);
if ($absolute) {
$uriPrefix = $GLOBALS['TSFE']->absRefPrefix;
$uri = GeneralUtility::locationHeaderUrl($uriPrefix . $uri);
}
return $uri;
}
}