我正在为我自己的TYPO3扩展编写一个后端模块,在其中将内容包装到包含CSS和JS文件的be.container
中:
<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/
这对我来说毫无意义。在我的项目中,相对于我的Web路径,/typo3/
是TYPO3核心与之链接的路径。
我已经保证我的资源文件分别放置在EXT:my_extension/Resources/Public/CSS/backend.css
和EXT:my_extension/Resources/Public/JS/backend.js
中。我遇到了一个类似的问题,即在前端包含资源,该问题将解决为/
-最后,我决定改为通过Typoscript进行包含。我不确定是否也可以对后端模块执行此操作。任何想法如何解决这个问题?也许我错过了配置中的某些东西,这些东西弄乱了f:uri.resource
的路径分辨率。任何帮助,将不胜感激。
对于最小的测试用例,请尝试将普通输出放入流体模板中:
{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。