在我的扩展Resource/Public
文件夹中,我有一张图片。我想使用<f:image>
-ViewHelper 渲染这个图像,使用image
-attribute,它接受一个FAL 文件对象。我怎么做?
不是我不能使用src
,我只是不想 - 在我的代码中少一个分支。
我正在使用 TYPO3 6.2.14 和 FluidTYPO3 生态系统。
在我的扩展Resource/Public
文件夹中,我有一张图片。我想使用<f:image>
-ViewHelper 渲染这个图像,使用image
-attribute,它接受一个FAL 文件对象。我怎么做?
不是我不能使用src
,我只是不想 - 在我的代码中少一个分支。
我正在使用 TYPO3 6.2.14 和 FluidTYPO3 生态系统。
我在 Slack 中得到了 Helmut Hummel 的答案:只有在使用兼容层时才有可能。
他为此写了一篇博文。相关部分是这样的:
静态资源
对于如何(当前)使用静态资源,我将只定义两条规则:
- 不要将它们与图像视图助手一起使用
- 将它们放入 Resources/Public 文件夹中的扩展中
如果你遵守这些规则,你就会少一些麻烦。
我们目前没有处理静态资源的 API,FAL API 只能在向后兼容层中处理它们(你应该避免使用,真的!)。这就是为什么您目前应该遵循规则 1(一旦我们拥有正确描述静态资源的对象,我们可能会放弃规则 1)。
您需要遵循规则 2 来利用一个不为人知的 Fluid 视图助手,即资源 uri 视图助手。您可以使用它来显示来自站点包 (my_site/Resources/Public/Images/logo.png) 的图像,如下所示:
<img src="{f:uri.resource(path:'Images/logo.png', extensionName:'my_site')}" width="200" />
请注意,我在这里没有使用图像视图助手,而是使用普通的 img html 标记并使用内联表示法的资源视图助手来自动计算该图像的 Web 根目录的路径。另请注意,视图助手希望将静态资源放置在 Resources/Public 目录中。