TYPO3 11 Sitepackage 教程预期模板文件 Standard/1.html

TYPO3 11 Sitepackage Tutorial expected template file Standard/1.html

TL;DR:

站点包教程的后端布局(Default/Standard 和两列)不会在外观 -> 后端布局中显示新页面。此线程中的错误消息 (1.html) 是来自原始旧站点设置的先前后端布局的产物。

解法:

为了使站点包教程的后端布局显示在那里,我必须编辑站点的根页面:资源 -> 包含静态页面 TSconfig(来自扩展)并从可用项目中添加站点包列表。 这也可以在没有“资源 -> 包含静态页面 TSconfig(来自扩展)”的情况下实现,而是通过站点包扩展根目录中的文件 ext_localconf.php (gpcf_theme):

<?php
defined('TYPO3_MODE') || die();

$boot = function (string $_EXTKEY): void {
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('
                <INCLUDE_TYPOSCRIPT: source="FILE:EXT:'.$_EXTKEY.'/Configuration/TsConfig/Page/Page.tsconfig">
        ');
};
$boot('gpcf_theme');
unset($boot);

原题:

我仍在尝试按照 TYPO3 Sitepackage 教程将现有的(较旧的)网页引入 Typo3 11。

目前我得到一个

"Oops, an error occurred! Code: 202111161210589c32f8c0"

无论我做什么都无法摆脱它。

日志文件中的相应条目是(我添加的换行符):

../../var/log/typo3_61306f633c.log:Tue, 16 Nov 2021 12:10:58 +0000 [ALERT] request="30cc4e082c853" 
component="TYPO3.CMS.Frontend.ContentObject.Exception.ProductionExceptionHandler": 
Oops, an error occurred! Code: 202111161210589c32f8c0- InvalidTemplateResourceException:
Tried resolving a template file for controller action "Standard->1" in format ".html",
but none of the paths contained the expected template file (Standard/1.html).
The following paths were checked: 
/var/www/html/typo3_11/public/typo3conf/ext/gpcf_theme/Resources/Private/Templates/Page/, 
in file /var/www/html/typo3_11/vendor/typo3fluid/fluid/src/View/TemplatePaths.php

我找不到这个错误的原因,因为我不知道从哪里请求所需的模板 Standard/1。html。

如果没有找到其他东西,这是某种硬编码的默认值吗? 如果是这种情况,真正的问题是,我对 Sitepackage 教程源代码的自定义似乎是错误的,但尽管有上述错误,但它从未产生任何不同的错误,这并不是很有帮助。好吧,这是猜测,因为我不知道。

如您所见,站点包已重命名为 gpcf_theme,它在后端可用并作为根模板应用到站点。没有其他模板处于活动状态(AFAIK)。一个简单的新创建的测试页面会产生上述错误。

如果我在 Configuration/TypoScript/Setup/Page 中取消注释。打字这样的行:

page = PAGE
page {
  typeNum = 0
  10 = TEXT
  10.value = Hello World!
}

同样的错误,没有你好世界。

知道如何找出我痛苦的原因吗?

错误消息指出文件 1.html 应该在文件夹 /var/www/html/typo3_11/public/typo3conf/ext/gpcf_theme/Resources/Private/Templates/Page/

正如您注意到的,您已重命名站点包,您可能错过了一些原始包名称,因此某些配置丢失或指向 nirvana。

也许修复真的很简单。尝试进入后端:

  1. 编辑主页
  2. 转到“外观”选项卡
  3. 为此页面和子页面设置后端布局
  4. 保存您的更改

很有可能它现在正在工作。

怎么回事?

您可以对您的数据库执行此查询:

SELECT 
    uid, pid, title, backend_layout, backend_layout_next_level 
FROM
    pages;

您可以在此处获得页面列表,其中一些已填充 backend_layoutbackend_layout_next_level。您的主页很可能在此字段中有一些值?

此字段的值由 TSConfig 为您在以下位置设置的后端布局生成: https://docs.typo3.org/m/typo3/tutorial-sitepackage/11.5/en-us/ContentMapping/Index.html#dynamic-content-rendering-in-typoscript

然后在您的 TypoScript 中读取和处理此列: https://docs.typo3.org/m/typo3/tutorial-sitepackage/11.5/en-us/TypoScriptConfiguration/Index.html#part-1-fluid-template-section

在代码段下方进行了解释。

如果从我的回答开始的 4 个步骤没有解决您的问题,那么您可以查看这些地方。

  1. TSConfig 中定义了后端布局、列、标签以及在 pages.backend_layout 数据库中写入的内容-场
  2. DB 列 如果值有意义 pagets__<yourTemplateName>
  3. 读取 pagets__ 的此 db-field 剪切的 TypoScript 占用其余部分,添加 .html 并在 TypoScript 中定义的路径中搜索下面。
  4. 检查您的模板文件文件夹和文件名是否正确。