如何在前端插件中包含公共资源3

时间:2014-01-21 11:47:09

标签: php typo3 extbase typo3-flow

我正在使用Extbase / Fluid为typo3 6.1.4构建天气小部件扩展。 扩展框架是使用extension_builder

创建的

我的问题是:如何将css和js文件包含在模板中?

当试图添加一个viewHelper时,我得到了这个神秘的错误

1297645190: Ext Direct error in "TYPO3\CMS\Core\ExtDirect\ExtDirectApi" with namespace: "TYPO3"
Try to clear the TYPO3 cache and / or use paramater no_cache=1 as parameter in URL typo3/ajax.php
Check also the following points:
- configuration in ext_localconf.php: registration key should be like TYPO3.MyExtension.Sample"
- URL typo3/ajax.php: namespace parameter should be like: "TYPO3.MyExtension"
- javascript: method\'s name should be like: "TYPO3.MyExtension.Sample.myMethod

我还有另一个密切相关的问题

为什么后端模块和前端插件使用相同的模板文件?

如何区分两者?

3 个答案:

答案 0 :(得分:1)

对于您的FrontendPlugin,您可能希望使用TypoScript添加JavaScript和CSS。在extbase扩展中,这通常在Configuration / TypoScript / setup.txt中完成:

page.includeCSS.myExtension = EXT:my_extension/Resources/Public/Css/MyCss.css
page.includeJS.myExtension = EXT:my_extension/Resources/Public/JavaScript/MyJs.js

至于你的第二个问题。您为前端插件和后端模块指定了相同的默认Controller / Action。

array(
    'Weather' => 'list',
),

因此两者都在使用与其模板相同的动作。

答案 1 :(得分:0)

将CSS / Javascript等放入资源公用文件夹,即Resources / Public / Css / style.css

在流体模板中,您可以使用以下方法访问它们:

<link href="{f:uri.resource(path:'css/style.css')}" rel="stylesheet" type="text/css" media="all">

答案 2 :(得分:0)

关于后端视图模板的第二个问题:

在setup.txt(.ts)中,您可以为后端定义不同的模板根,如下所示:

module.tx_foobar {
    persistence < plugin.tx_foobar.persistence
    view {
        templateRootPath = {$module.tx_foobar.view.templateRootPath}
        partialRootPath = {$module.tx_foobar.view.partialRootPath}
        layoutRootPath = {$module.tx_foobar.view.layoutRootPath}
    }
}