You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bolt CMS路由配置问题:如何让博客与页面共用/{slug}路径

解决Bolt CMS中页面与博客共享/{slug}路由的问题

我明白你遇到的困扰了——当给页面和博客配置了完全相同的/{slug}路径时,只有第一个路由能生效,第二个根本没机会触发。这是因为Bolt基于的Symfony路由系统,会按路由定义的顺序匹配第一个符合路径规则的路由,不会继续检查后续配置。

下面是能解决问题的正确配置方案,通过路由优先级+动态条件判断实现两者共享路径:

# 博客路由:设置更高优先级,先检查slug是否属于博客内容
blogitemsbinding:
  path: /{slug}
  defaults:
    _controller: controller.frontend:record
    contenttype: blogitems
  # 条件判断:仅当该slug存在于blogitems内容类型时,才匹配此路由
  condition: "repository('blogitems').findOneBySlug(request.get('slug')) is not null"
  # 提升优先级,确保此路由先被系统检查
  priority: 10

# 页面路由:当博客路由不匹配时,自动 fallback 到页面查找
pagebinding:
  path: /{slug}
  defaults:
    _controller: controller.frontend:record
    contenttype: pages

配置细节说明:

  • 优先级(priority):给博客路由设置priority:10(默认路由优先级为0),让它在页面路由之前被系统检查。
  • 条件判断(condition):借助Bolt内置的repository服务,动态验证当前请求的slug是否存在于blogitems中。只有验证通过时,才会用这个路由处理请求。
  • ** fallback 逻辑**:如果博客路由的条件不满足(即slug不在博客内容里),系统会自动匹配后续的页面路由,去pages中查找对应的内容。

注意事项:

请务必保证pages和blogitems中的slug没有重复,否则优先级更高的博客路由会优先匹配,导致对应的页面无法正常访问。

内容的提问来源于stack exchange,提问作者DelphiLynx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:13:13