我尝试使用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
答案 0 :(得分:1)
解决方案是使用VHS ViewHelper v:render.uncache
并使用不应缓存的部分创建部分。它不是最好的解决方案,因为您需要额外的文件。但是现在我能想到的另一种方法就是使用一些Typoscript,这也是我想要避免的。
答案 1 :(得分:0)
另一种方法是将图像加载为ajax调用,这样就可以缓存页面,而不是随机图像。