TYPO3扩展名-f:uri.resource返回错误的路径

时间:2020-02-12 16:56:39

标签: typo3 fluid typo3-9.x typo3-extensions

我正在为自己的TYPO3扩展编写一个后端模块,在其中将内容包装到be.container中,其中包括CSS和JS文件:

<f:be.container 
    includeCssFiles="{0: '{f:uri.resource(path:\'CSS/backend.css\')}'}" 
    includeJsFiles="{0: '{f:uri.resource(path:\'JS/backend.js\')}'}"
>
    <!-- module content -->
</f:be.container>

这些资源均未包含在内。当我直接将f:uri.resource渲染到HTML中时,无论使用哪种路径,解析为

/typo3/

这对我来说毫无意义。在我的项目中,/typo3/是TYPO3核心相对于我的Web路径的符号链接。

我已经保证资源文件分别放在EXT:my_extension/Resources/Public/CSS/backend.cssEXT:my_extension/Resources/Public/JS/backend.js中。我遇到了一个类似的问题,即在前端包含资源,该问题将解决为/ -最后,我决定改为通过Typoscript加入。我不确定是否也可以对后端模块执行此操作。任何想法如何解决这个问题?也许我错过了配置中的某些东西,这些东西弄乱了f:uri.resource的路径分辨率。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

对于最小的测试用例,请尝试将纯输出放入流体模板中:

{f:uri.resource(path:'CSS/backend.css')}

如果产生相同的结果,则似乎ViewHelper不知道当前的扩展名。您可以将扩展密钥作为参数传递给它,请参见https://docs.typo3.org/other/typo3/view-helper-reference/9.5/en-us/typo3/fluid/latest/Uri/Resource.html