dongzhen7108
2016-01-13 13:45
浏览 17
已采纳

TYPO3(带有extbase)流体:用绝对路径显示图像src

For an XML Export I need to output the absolute path of 2 images. Image1 is located in /typo3conf/ext/app/Resources/Public/Images/image1.png and Image2 is located in /uploads/tx_extensionname/image2.png

For the life of me I cannot find a way to get the absolute paths of the images. What I tried:

<f:uri.image absolute="1" src="EXT:app/Resources/Public/Images/image1.png"/>

Which returns the following error:

Argument "absolute" was not registered.

I also tried f:uri.resource , which works for image1, but, of course, doesn't for image2 because there is no extensionName.

Any hints?

图片转代码服务由CSDN问答提供 功能建议

对于XML导出,我需要输出2个图像的绝对路径。 Image1位于/typo3conf/ext/app/Resources/Public/Images/image1.png 和Image2位于/uploads/tx_extensionname/image2.png

对于我的生活 我无法找到获得图像绝对路径的方法。 我尝试了什么:

 &lt; f:uri.image absolute =“1”src =“EXT:app / Resources / Public / Images / image1.png”/&gt;  
   
 
 

返回以下错误:

 参数“absolute”未注册。
   
 
 

我还尝试了f:uri.resource,它适用于image1,但当然不适用于image2,因为没有extensionName。

任何提示?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doujianguang5506 2016-01-13 14:13
    已采纳

    The absolute argument for the f:uri.image view helper was added only recently in TYPO3 7.6.0. See the changelog:

    Feature: #64286 - Added absolute url option to uri.image and image viewHelper

    The ImageViewhelper and Uri/ImageViewHelper got a new option absolute. With this option you are able to force the ViewHelpers to output an absolute url.

    I'd suggest upgrading to TYPO3 7.6.

    If that's not possible for you for any reason, you can extend the f:uri.image view helper. The code below is untested, but should work for 6.2 LTS (I've borrowed parts of the code from TYPO3\CMS\Extbase\Service\ImageService in 7.6):

    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;
        }
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题