随机图像与v:iterator.random |缓存问题

时间:2016-04-13 11:35:15

标签: typo3 typo3-7.6.x

我尝试使用VHS(版本2.4.0)RandomViewHelper v:iterator.random输出1个随机图像。

这是我的代码:

{namespace flux=FluidTYPO3\Flux\ViewHelpers}
{namespace v=FluidTYPO3\Vhs\ViewHelpers}

    <f:layout name="Content" />

    <f:section name="Configuration">
        <flux:form id="random-image" label="Random Image" options="{icon: 'Icons/Content/Example.gif', group: 'Joya'}">
            <flux:field.input name="classname" label="Classname" />
        </flux:form>

        <flux:form.section name="images" label="Images">
            <flux:form.object name="image" label="Image">
                <flux:field.file name="imagesrc" label="Image" allowed="png,jpg" maxItems="1" size="1" />

            </flux:form.object>
        </flux:form.section>

    </f:section>

    <f:section name="Preview">
        Random Image
    </f:section>

    <f:section name="Main">
        <div class="random-image">
        <v:iterator.random as="img" subject="{images}">
            {img.image.imagesrc}
        </v:iterator.random>

        </div>
    </f:section>

我添加了3张图片进行测试,但它总是输出相同的图像。 编辑:随机缓存的输出。因此,在清除缓存后,它会输出另一个图像。

我可以为这行代码禁用缓存吗?

https://fluidtypo3.org/viewhelpers/vhs/2.4.0/Iterator/RandomViewHelper.html

2 个答案:

答案 0 :(得分:1)

解决方案是使用VHS ViewHelper v:render.uncache并使用不应缓存的部分创建部分。它不是最好的解决方案,因为您需要额外的文件。但是现在我能想到的另一种方法就是使用一些Typoscript,这也是我想要避免的。

答案 1 :(得分:0)

另一种方法是将图像加载为ajax调用,这样就可以缓存页面,而不是随机图像。