2012-04-13 110 views
3

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

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

DWT标记

<img src="@@[email protected]@"/> 

模板处理

<img src="image.jpg"/> 

然而,当我加入这样的相对路径,模板返回tcmid

DWT标记

<img src="Folder/img/@@[email protected]@" type="text/css" rel="stylesheet"/ 

模板渲染

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

而这会导致图像在网站中无法正常显示。我尝试过Tridion类型:多媒体等,但迄今没有任何工作。

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

+0

请在下面检查我的答案。你能提供更多关于你想要完成的信息吗? – 2012-04-13 22:33:43

+0

除了DWT模板之外,您是否还可以确认您正在使用HTML TBB中的解析链接和发布二进制文件?或者可能的默认完成操作TBB? – 2012-04-14 00:05:38

+0

是的,我正在使用默认的结束动作TBB。 – 2012-04-14 00:53:38

回答

3

您遇到的问题是,Tridion(Dreamweaver中介)会将您的src图像属性解释为Content Manager中项目的WebDAV路径。因此,如果它找到Folder/img/@@[email protected]@下的多媒体组件,它将用该多媒体组件的TCMURI替换您的路径。这是预期的行为。

但是,我不认为这就是你想要做的事情(从你的问题不清楚)。 Tridion中的图像是多媒体组件吗?你想展示这张图片吗?然后,您应在DWT中使用多媒体链接(即指向多媒体组件的链接):<img src="@@[email protected]@"/>,其中字段link_to_mmc是架构中定义的多媒体链接字段。然后使用'Resolve Links'默认TBB将TCMURI转换为相对图像路径。

如果您要链接到外部图像,那么您需要在DWT模板中指定该图像的URL。像这样的<img src="@@[email protected]@"/>,其中external_url是您的架构中的文本字段,它包含您要显示的外部图像的实际URL。

+0

谢谢Mihai您的时间来帮助我。对不起,我没有让我的问题在我以前的帖子中清楚。我在页面元数据中有图像。页面元数据中的字段名称是图像字段,它是多值字段。我通过访问它<! - TemplateBeginRepeat名= “Page.imagefields” - > <! - TemplateEndRepeat - >此之际,但是我的期望是得到它像 2012-04-14 00:09:49

+0

我m使用页面默认TBB中的提取组件,页面布局Dreamweaver TBB和默认完成在我的页面模板中执行tbb。这种行为工作正常,如果我没有相对路径。说给我。 – 2012-04-14 00:20:24

3

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

+0

你是完全正确的克里斯,所以我不是不同意张贴我自己的答案。我想添加的东西只是比我可以轻松地填入评论中的东西多一点。 – 2012-04-14 01:56:27

3

如果您的imagefields是通过多媒体组件连接的,那么您需要的仅是<img src="@@[email protected]@"/>。随着该Tridion将(按此顺序):

  1. 替换@@[email protected]@与图像的TCM URI(例如,TCM:6-874),当它执行DWT
  2. 把图像项到封装作为隐含步骤执行DWT
  3. 发布图像(如在Default Finish Actions
  4. 步骤替换一个后使用发布映像的路径的TCM URI(tcm:6-874)

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

如果您已经正确设置了Tridion安装,您通常会在发布属性中存储图像的基本路径,然后第3步只是将图像放在那里,第4步将完整路径(包括您在发布属性中指定的内容)添加到HTML中。

如果您想要更多地控制相对路径,Publish Binaries in PackageDefault Finish Actions TBB有一个参数,允许您指定将图像发布到哪个结构组。这样,您可以将不同的模板将其图像输出到磁盘上的不同结构组/目录。

对于最终的控制,您还可以决定自己发布二进制文件。在这种情况下,请查看Publish Binaries in Package TBB(可从SDL Tridion World上的论坛获得)的来源,对其进行修改以适合您的需要,并用您的修改版本替换Default Finish Actions中的那个。