【发布时间】:2019-05-07 08:14:20
【问题描述】:
在我当前的 TYPO3 9.5.5 “经典模式”项目中,3 个菜单块在文件夹结构中管理,如下所示:
RootPage
- Home (-> this is a separate menu)
- [FOLDER FOR MAIN MENU]
-- Menu 1
-- Menu 2
-- Menu 3
- [FOLDER FOR META MENU]
-- Contact
-- Privacy Protection
菜单是通过这样的 MenuProcessors 生成的:
page.10.FLUIDTEMPLATE.dataProcessing {
// Main menu
20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
20 {
special = directory
special.value = {$mainMenuFolderPid}
as = menuMain
titleField = nav_title // title
expandAll = 1
includeSpacer = 0
levels = 3
}
// Meta menu
25 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
25 {
special = directory
special.value = {$metaMenuFolderPid}
as = menuMeta
...
}
}
虽然home menu 和main menu 在口语网址方面按预期工作,但meta menu 不会正确创建口语网址,而是直接使用页面标题,这意味着@987654326 中的“c” @ 确实是大写的,Privacy Protection 中的“p”也是大写的,它也有空格。
生成的 URL 格式如下所示:
https://domain.tld/Contact
https://domain.tld/Privacy Protection
这会导致 404(在“站点配置”中定义的那个;404 工作正常)。
如果我将元菜单更改为 list 并手动添加页面 ID,则会为该菜单生成相同的错误结果。
奇怪的是,当直接从后端打开联系页面时,会生成正确的 url (domain.tld/contact.html)(即使我手动重命名了 slug)。
谁能帮我理解一下,我在这里做错了什么?
【问题讨论】: