用于 SVG 图像的 FluidTYPO3 vhs ViewHelper?

Posted

技术标签:

【中文标题】用于 SVG 图像的 FluidTYPO3 vhs ViewHelper?【英文标题】:FluidTYPO3 vhs ViewHelper for SVG Images? 【发布时间】:2015-11-20 13:47:03 【问题描述】:

我使用 TYPO3 CMS 6.2.14、vhs 2.3.3Flux 7.2.1FluidContent 4.3.1 - 我的 TYPO3 编辑器需要有机会通过 vhs-ViewHelper 上传 SVG 图像。我制作了一个新的 FluidTYPO3 内容元素 (FCE),但在前端看不到 SVG 图像。嗯?

Flux-FlexForm

<flux:field.file name="imgIcon" allowed="jpg,gif,png,jpeg,svg" uploadFolder="uploads/tx_myext" minItems="0" maxItems="1" size="1" />
...
 <v:media.image src="uploads/tx_myext/imgIcon"  />

输出

<div class="small-2 columns">
  <img  src=""  >
</div>

我也使用了 htaccess 条目,但没有成功。我的错在哪里?我需要 heightwidth 这个 ViewHelper 吗? vhs 中没有矢量可用吗?

<IfModule mod_mime.c>
    ...
    AddType image/svg+xml                   svg svgz
    AddEncoding gzip                        svgz
    ...
</Ifmodule>

编辑:我也尝试过 Fluid ViewHelper,但 SVG 图像有 height/width = 0

<f:image src="uploads/tx_myext/imgIcon"   class="xy"  />

编辑 2:ImagePath 是正确的。在开发人员工具中,我“看到”了图像 ..

编辑 3:哦,我在我的 Filemanager (FAL) 0x0 pixels 看到了。

【问题讨论】:

文件路径是否正确?也许位置uploads/tx_myext 存储在数据库中,不能在viewhelper 中设置。使用模板中某处的&lt;f:debug&gt;_all&lt;/f:debug&gt; 调试变量,它会显示所有可用的变量及其值。 您好 merec,路径是正确的。看看我的 EDIT 2 ... 但现在显示输出中图像的路径。 svgs 有一个错误,请参阅forge.typo3.org/issues/66445 哦,是的..我在typo3/sysext/core/Classes/Type/File/FileInfo.php::L31 // @todo will be implemented in issue #60019看到它希望能解决我的问题... 哦 .. 我看到您 Fourge-Link 上的 TagretVersion 是 TYPO3 CMS 7。我使用的是 TYPO3 6.2.14。我是否需要从 6.2 更新到 7.x 才能解决问题?或者,也许我会将我的 SVG 图像用作backgeound-image?! 【参考方案1】:

谢谢merec。

将 SVG 图像 / TYPO3 6.2 与 FluidTYPO3 结合使用

答案:使用

<img src="f:uri.image(src: 'uploads/tx_myext/imgIcon')">

而不是

<v:media.image src="uploads/tx_myext/imgIcon"  />
// OR
<f:image src="uploads/tx_myext/imgIcon"   class="xy"  />

【讨论】:

是否存在使用媒体的更好做法?你可以在这里查看:fluidtypo3.org/viewhelpers/vhs/1.3.1/Media/…

以上是关于用于 SVG 图像的 FluidTYPO3 vhs ViewHelper?的主要内容,如果未能解决你的问题,请参考以下文章

从 Flexform 上传图像后出现 Fluid TYPO3 Flux 500 错误

FluidTYPO3 在 TYPO3 后端使用 Flux Grid 复制内容模块

流体驱动的 TYPO3 - 命名空间的正确设置

svg图像不适用于safari 5.1.7(windows)

html 用于图像的SVG代码

SVG 用于浏览器中带有 PNG 后备的图像