删除ImageViewHelper创建的路径中的尾部斜杠

时间:2019-05-20 19:26:14

标签: typo3 fluid view-helpers

我正在尝试使用Fluid将CSS代码添加到模板文件中。我想渲染上传到/fileadmin/user_upload/foo.jpg的背景图片 但是,{images.0.url}返回路径/fileadmin/user_upload/foo.jpg/ 加上斜杠,然后当然会引发以下错误:

  

TYPO3Fluid \ Fluid \ Core \ ViewHelper \ Exception

     

提供的文件对象类型TYPO3 \ CMS \ Core \ Resource \ Folder必须是File或FileReference。

如何从路径中删除斜杠?

下面显示了相关的代码段。请注意,v:format.prepend此处仅用于调试目的,对问题没有影响。

    <f:section name="Header">
        <v:page.resources.fal table="pages" field="media" uid="{page.uid}" as="images" slide="-1" >
            <v:asset.style name="header">
                header#header <f:format.raw>{</f:format.raw>
                background-image: url(<f:uri.image src="{v:format.prepend(add: '', subject: '{images.0.url}')}" treatIdAsReference="1" />)
                <f:format.raw>}</f:format.raw>
            </v:asset.style>
        </v:page.resources.fal>

        <f:render section="Default"  partial="DefaultHeader" arguments="{_all}"/>
    </f:section>

2 个答案:

答案 0 :(得分:0)

您考虑以下几点吗? 您可以删除包装的vhs ViewHelper并直接访问第一个媒体。

<v:asset.style name="header">
                header#header <f:format.raw>{</f:format.raw>
                background-image: url({f:uri.image(image:data.media.0})
                <f:format.raw>}</f:format.raw>
            </v:asset.style>

答案 1 :(得分:0)

遇到类似问题。通过使用图像的绝对URL解决了它。就我而言,它是(获取网址):

<f:variable name="mediaUrl">{f:uri.image(image: mediaObject, treatIdAsReference: 1, absolute : 1)}</f:variable>

后来使用URL作为来源:

data-src="{f:uri.image(src: mediaUrl, treatIdAsReference: 0)}"

我正在根据条件在提供的obj和静态资源uri之间切换源,因此这是必要的并且很方便。