8

我有一个外部JavaScript和一个CSS文件。我不知道如何将此文件添加到我的页面。我将DWT TBB用于CT 和 PT

我正在我的页面 TBB 中编写内部 CSS 以暂时获取输出。但我不知道如何实现 JavaScript。有人可以帮助我吗?

我应该将这些文件作为组件并将它们呈现在我的页面上吗?这是正确的方法吗?如果是,请告诉我要遵循的步骤。

4

2 回答 2

11

这是一个广泛讨论的话题,我将尝试概述各种可能性:

  1. 创建 CSS & JS 作为二进制组件,从 DWT 模板链接到这些
  2. 创建 CSS 和 JS 作为二进制组件,作为 DCP 发布到服务器,通过 url 链接到二进制
  3. 创建 CSS 和 JS 作为文本组件,放置在页面中,发布到服务器,链接 url 到页面
  4. 将 CSS 和 JS 复制到交付服务器(不是 Tridion),通过 url 链接到 css 和 js

选项#1 是最简单的,但有很多缺点。

  • 使用您需要的 CSS 和 JS 文件在 Tridion 中创建多媒体组件。
  • 记下 URI,然后在 DWT 中使用类似这样的内容:
<link href="tcm:27-2762" rel="stylesheet" type="text/css" />
<script src="tcm:27-2763" type="text/javascript"></script>

如果您的模板使用默认完成操作构建块,那么 Tridion 将解析对这些二进制文件的引用并将其与您的页面一起发布。这样做的副作用是这些二进制文件将与使用相同模板的所有页面一起发布。

选项 #2 要求您编写一个动态组件模板,可能带有一些代码来确定文件发布到哪里。这更符合我通常实施的方式,但目前我不建议您这样做。随着您对 Tridion 知识的了解,您会感到很自在,可以自己完成这项工作。使用此选项,您可以将 CSS/JS 文件发布到给定位置,然后在 DWT 中使用引用,而不是使用 TCM URI(如上)将使用文件发布到的 URL。

选项 #3 要求您创建一个“代码组件和模板”,这意味着一个简单的模式,只有一个大文本字段(不是富文本),其中复制/粘贴您的 CSS 或 JS 的内容。然后编写一个简单的组件模板,它将按原样输出内容。类似的东西@@Fields.Code@@。最后,您使用一个 DW 模板创建 2 个页面模板(一个扩展名为 .js,另一个扩展名为 .css):

<!-- TemplateBeginRepeat name="Components" -->
@@RenderComponentPresentation()@@
<!-- TemplateEndRepeat -->

最后,同样重要的是(有很多方法可以给这只猫换皮),您可以直接将这些 CSS/JS 文件放在您的网络服务器上,并在您的 DWT 中添加一个链接到这些文件可用的 URL。

希望这能给你一些选择。请记住,包含 CSS/JS 应该在页面模板级别(理想情况下在<head>您的页面部分)完成,而不是在您的组件模板中。

于 2012-05-11T17:44:27.067 回答
5

来自 Building Blocks 的大量文章如何解释这一点

查看这些链接:

  1. http://blog.building-blocks.com/publishing-code-files-from-sdl-tridion
  2. http://blog.building-blocks.com/css-in-sdl-tridion-part-2-handling-image-references
  3. http://blog.building-blocks.com/tridion-tbb-automatically-minify-css-javascript-on-publish

如果您想让事情变得非常简单(但我不建议这样做,因为它会在您每次发布页面时重新发布您的 CSS 或 JS)。您可以将 CSS 存储为多媒体组件(并记下其 URI)并在 DWT 页面布局中像这样引用它:

<link rel="stylesheet" href="tcm:1-2-16" />

    or

<script type="text/javascript" src="tcm:1-2-16"></script>

然后使用 Default Finish Actions 确保二进制文件已发布并且链接已解析。

于 2012-05-11T16:30:56.883 回答