3

在 SDL Tridion、Dreamweaver 模板中,我必须在页面模板中设置我的图像的相对路径。

当我在 DWT 中有这样的代码时,Tridion 会产生如下输出。

DWT 标记

<img src="@@Field@@"/>

模板渲染

<img src="image.jpg"/>

但是,当我添加这样的相对路径时,模板返回tcmid

DWT 标记

<img src="Folder/img/@@Field@@"  type="text/css" rel="stylesheet"/

模板渲染

<img src="tcm:8-674"/>

这会导致图像无法在网站中正确呈现。我尝试使用 Tridion 类型:多媒体等,但到目前为止没有任何效果。

有没有人见过类似的问题?

4

3 回答 3

3

您遇到的行为是 Tridion(Dreamweaver 中介)将您的src图像属性解释为内容管理器中项目的 WebDAV 路径。因此,如果它在 下找到多媒体组件Folder/img/@@Field@@,它将用该多媒体组件的 TCMURI 替换您的路径。这是预期的行为。

但是,我认为这不是您想要做的(从您的问题中不清楚)。您在 Tridion 中的图像是作为多媒体组件吗?你想展示这张图片吗?然后你应该在你的 DWT: 中使用多媒体链接(即到多媒体组件的链接)<img src="@@Compoennt.Fields.link_to_mmc@@"/>,其中字段link_to_mmc是在你的模式中定义的多媒体链接字段。然后还使用“解析链接”默认 TBB 将 TCMURI 转换为相对图像路径。

如果要链接到外部图像,则需要在 DWT 模板中指定该图像的 URL。像这样的东西<img src="@@Component.Fields.external_url@@"/>,Schema 中的 Text 字段在哪里external_url,它包含您要显示的外部图像的实际 URL。

于 2012-04-13T22:32:53.043 回答
3

如果您的imagefields字段是指向多媒体组件的链接,那么您只需要<img src="@@Field@@"/>. 使用该 Tridion 将(按此顺序):

  1. @@Field@@在执行 DWT 时将替换为图像的 TCM URI(例如 tcm:6-874)
  2. 执行 DWT 后将图像项作为隐式步骤放入包中
  3. 发布图像(作为 中的步骤之一Default Finish Actions
  4. 将 TCM URI (tcm:6-874) 替换为发布镜像的路径

由于您可能在 DWT 和默认完成操作之间有自定义 TBB,因此您可以使用它们来修改图像项目并影响发布的内容(以及在何处发布,使用项目属性)。

如果您正确设置了 Tridion 安装,您通常会将图像的基本路径存储在 Publication 属性中,然后步骤 3 将图像放入其中,步骤 4 将完整路径(包括您在发布属性)到 HTML 中。

如果您想对相对路径进行更多控制,则TBBPublish Binaries in PackageDefault Finish ActionsTBB 具有一个参数,可让您指定将图像发布到哪个结构组。这样,您可以让不同的模板将其图像输出到磁盘上的不同结构组/目录。

为了最终控制,您还可以决定自己发布二进制文件。在这种情况下,请查看Publish Binaries in PackageTBB 的来源(可从 SDL Tridion World 上的论坛获得),根据您的需要对其进行修改,并将默认完成操作中的那个替换为您修改后的版本。

于 2012-04-14T01:55:06.347 回答
3

似乎您快到了,只有当您将字符串添加为相对路径时,默认的 TBB 不再识别 SRC 属性中保存的 uri。如果您尝试将二进制文件发布到不同的位置,则需要将其绑定到不同的结构组,或者尝试更改出版物上的多媒体 URL。这样,图像将发布(并解析)到您的子目录。

于 2012-04-14T00:09:39.047 回答