TYPO3 9.5.11新闻无限滚动路由优化问题求助
解决方案:TYPO3 9.5.11 News扩展无限滚动的分类分页友好URL问题
我之前在TYPO3 9.5.x版本里用News扩展搭配无限滚动时,也碰到过几乎一模一样的问题——全局列表分页正常,但分类分页的友好URL死活出不来,调整路由后又触发了Bug #86895。下面是我亲测有效的解决方法:
核心问题分析
你的第二个配置里,全局分页路由/{page}的规则太宽泛,会和其他路由(比如分类路由、甚至其他页面的数字slug)产生匹配冲突,这就是触发Bug #86895的原因。同时第一个配置里的NewsList插件增强器没有关联分类参数,所以分类分页只能生成带query的URL。
我们需要做的是:
- 给全局列表的分页路由加一个明确的前缀(比如
page-),避免路由冲突 - 为分类分页单独定义清晰的路由规则,确保分类slug和分页参数能正确映射
最终可用的config.yaml配置
routeEnhancers: News: type: Extbase extension: News plugin: Pi1 routes: # 全局新闻列表分页(带page-前缀,避免冲突) - routePath: '/page-{page}' _controller: 'News::list' _arguments: page: '@widget_0/currentPage' # 新闻详情页 - routePath: '/{news-title}' _controller: 'News::detail' _arguments: news-title: news # 分类新闻列表(无分页) - routePath: '/{category-name}' _controller: 'News::list' _arguments: category-name: overwriteDemand/categories # 分类新闻列表分页 - routePath: '/{category-name}/page-{page}' _controller: 'News::list' _arguments: category-name: overwriteDemand/categories page: '@widget_0/currentPage' defaultController: 'News::list' defaults: page: '1' # 默认页码设为1,符合TYPO3分页逻辑 requirements: page: '\d+' # 确保page参数只能是数字 aspects: news-title: type: PersistedAliasMapper tableName: tx_news_domain_model_news routeFieldName: path_segment category-name: type: PersistedAliasMapper tableName: sys_category routeFieldName: slug page: type: StaticRangeMapper start: '1' end: '100' # 根据你的需求调整最大页码范围
关键配置说明
- 全局分页路由前缀:用
/page-{page}替代原来的/{page},这样不会和分类路由/{category-name}或者其他数字slug的页面冲突,完美避开Bug #86895。 - 分类分页路由:单独定义
/{category-name}/page-{page},明确关联分类参数overwriteDemand/categories和分页参数@widget_0/currentPage,确保生成的URL格式是/categorie/nameofthecategory/page-2。 - 参数验证:通过
requirements确保page只能是数字,避免非法参数干扰路由匹配。 - 默认值设置:把
page的默认值设为1,符合TYPO3分页组件的初始逻辑。
后续验证步骤
- 清空TYPO3的全部缓存(包括配置缓存、页面缓存)
- 测试全局新闻列表:滚动加载第二页,检查URL是否变为
/your-news-page/page-2 - 测试分类新闻列表:进入某个分类页面,滚动加载第二页,检查URL是否变为
/your-news-page/your-category-slug/page-2 - 确认无限滚动插件的配置:确保插件使用TYPO3的内置路由生成器来获取分页URL,而不是手动拼接query参数
额外排查点
如果还是有问题,可以检查:
- 确认
sys_category表的slug字段已经正确生成(可以在后台编辑分类时查看) - 确保News扩展的版本和TYPO3 9.5.11兼容(推荐使用News 7.x版本,对应TYPO3 9.5)
- 检查是否有其他路由增强器和News的路由规则冲突
内容的提问来源于stack exchange,提问作者DJCrispyRice
相关产品推荐
相关产品推荐

