TypoScript:检查是否已包含JS / CSS文件

时间:2014-07-01 16:05:59

标签: typo3

任何人都知道如何检查js / css文件是否已包含在typoscript中?

实施例

[Template_A.ts]

page.includeJS {
  jsfile = fileadmin/Template/js/jquery-1.10.2.min.js
}

现在如果我得到了相同的扩展名,例如

[Extension_A.ts]

page.includeJS {
  jsfile = fileadmin/Template/js/jquery-1.10.2.min.js
}

有没有办法阻止这种双重代码注入?也许我有另一个模板,例如Template_B.ts,其中不包括jquery - 比Extension_A.ts必须包含jquery本身。

Kinldy

2 个答案:

答案 0 :(得分:2)

您可以在includeJS内使用相同的密钥,只要您将文件包含两次,它就会被覆盖。

除此之外,您应该将jQuery放入includeJSlibs,以便在其他JS文件之前加载它。

除此之外,每个页面的TS应该是唯一的。因此,无论如何,您始终要确保所有资源都按顺序包含在内。 您不应该将JS库包含在自动扩展TS设置中。使用您的文档告诉集成商需要包含哪些内容以及不需要包含哪些内容。

答案 1 :(得分:1)

通过插件和模板对脚本进行各种独立的包含是TYPO3中棘手的问题之一。据我所知,这一点无法在一个点上进行管理。

有一个plugin "t3jquery"可以构建,压缩和共享一个通用的jQuery库。它还有一个服务来分析其依赖项的其他插件。但这并不能解决问题,因为很多插件都不会检查已加载的库。

最稳定的方法是在TypoSkript中手动删除所有插件对库的引用。这为您提供了一些简单的额外TypoSkript线。我使用这样的行:

plugin.tx_imagecycle_pi1.file.jQueryLibrary >
plugin.tx_imagecycle_pi1.jQueryLibrary >
plugin.tx_multicontent_pi1.file.jQueryLibrary > 
plugin.tx_multicontent_pi1.jQueryLibrary > 
# Fluid
page.headerData.998 >

您可以通过在TypoSkript浏览器中搜索库名称或通过grep插件的源代码找到匹配的TypoSkript描述符。如果您希望将库添加为AJAX获取的内容的一部分,那么您也需要这样做,从而将lib与页面内容分开。

这是一个啧啧(德语):http://jweiland.net/typo3/typoscript/javascript-manuell-entfernen-oder-einbinden.html

您可以检查的其他可能性:

  • 有些插件编写得很好,可以在设置中保留Javascript。
  • 某些脚本内容可能来自静态模板,而是来自插件,因此请不要忘记查看。