在TYPO3 8.7中,我试图使用FLUID生成JSON。
我创建了一个包含虚拟内容的页面,并且已经更新了文件夹中所有页面的TypoScript配置。
TypoScript设置
[PIDinRootline = 10]
page = PAGE
page {
typeNum = 0
config {
disableAllHeaderCode = 1
disablePrefixComment = 1
xhtml_cleaning = none
admPanel = 0
debug = 0
metaCharset = utf-8
additionalHeaders = Content-Type:text/json;charset=utf-8
}
}
[global]
我还创建了一个虚拟JSON文件,以测试输出,然后使用FLUID创建实际内容:
api.json
{
"hello": "world"
}
现在,这似乎工作正常。但是输出仍然包含html
-和body
元素。
渲染的输出:
<html>
<head></head>
<body>
{"hello": "world"}
</body>
</html>
如果您要使用Fluid输出JSON,RSS或类似数据,您必须编写适当的TypoScript并通过页面渲染分别为Extbase和Fluid。除此以外,TYPO3将始终生成
<head>
-和<body>
-部分。
但是我实际上不知道该怎么办。如何获得TYPO3不呈现包装的HTML元素?
当覆盖页面对象时,应先使用page >
删除其中的所有对象。另外,Fluid是HTML的模板引擎,我不知道它是否适合JSON输出。
更好的方式:我建议使用与页面不同的对象和不同的页面类型:
[globalVar = GP:type = 133]
jsonOutput = PAGE
jsonOutput {
typeNum = 133
config {
...
}
}
[global]