Typo3 Fluid模板使用uri.resource无法找到CSS文件

3
我按照这篇教程创建了一个使用Fluid模板的Typo3网站。然而,我无法将CSS包含在模板中。在标签中包含了以下CSS:
<link rel="stylesheet" href="css/bootstrap.css">

我将这个重新写入模板中:
<link rel="stylesheet" href="{f:uri.resource(path:'css/bootstrap.css')}">

但是CSS未包含在内。模板的路径为:

fileadmin/templates/layouts/main.html

CSS文件的路径为:
fileadmin/templates/css/bootstrap.css

我应该把CSS文件放在哪里?如何在Fluid模板中包含这个CSS?

2个回答

4
请记住,如果您在多个页面上使用插件,则 pduerseler 的方法更好。
至于您的问题,uri.resource ViewHelper 假定您的资源位于扩展的 Resources/Public 目录中。因此:
<link rel="stylesheet" href="{f:uri.resource(path:'css/bootstrap.css')}">

指向
typo3conf/ext/yourExt/Resources/Public/css/bootstrap.css

无法使用资源ViewHelper指向fileadmin中的文件,请参见https://git.typo3.org/Packages/TYPO3.CMS.git/blob/HEAD:/typo3/sysext/fluid/Classes/ViewHelpers/Uri/ResourceViewHelper.php
当前TYPO3页面模板的最佳实践是将TYPO3网站的模板放在自己的扩展中,例如请参见https://github.com/georgringer/modernpackage

1
但是如果我的模板在fileadmin/templates中,而且没有任何扩展名怎么办?这是主站点模板,不是扩展模板。uri.resource在哪里寻找我的CSS? - Tom

3

通常情况下,您可以将JS和CSS文件放入您的Typoscript中。

示例:

page = PAGE
page {
  includeCSS {
    myfile = path/to/my/file.css
  }

  includeJS {
    myfile = path/to/my/file.js
  }
}

这样做有一些好处:您可以将js和css文件组织到多个文件中,而且通过设置TYPO3,可以将它们合并压缩。
config {
  concatenateJs = 1
  concatenateCss = 1

  compressJs = 1
  compressCss = 1
}

请查看此处: http://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Page/Index.html。这是有关IT技术的相关内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接