螺栓CMS具有两条不同路径的相同路径

时间:2018-01-05 15:30:21

标签: routing routes bolt-cms

请参阅以下内容类型:

package(default_visibility = ["//visibility:public"])

filegroup(
    name = "mapit_files",
    srcs = glob(
        [
            "**/*",
        ],
        exclude = [
            "**/LICENSE",
            "**/*.zip",
        ],
    ),
)

load("@//conf:general_yml.bzl", "general_yml")

general_yml(
  name = 'generate_general_yml',
  bzl_mapit_db_user = 'foo',
)

filegroup (
  name = 'mapit_general_yml',
  srcs = ['conf/general.yml'],
  data = ['@//conf:general.yml.tmpl'],
)

我不希望博客显示为pages: name: Pages singular_name: Page fields: # etc blogitems: name: Blogitems singular_name: Blog fields: # etc ,而是将/blog/slug显示为网页。

如何在路线中正确定义?在我最后一次尝试时,我提出了这个,它在正常页面上返回错误:

slug

问题是,当我两个都离开时,上面的第一个会起作用,但下面的那个不会。

谁可以阐明这一点,因为遗憾的是,这里没有记录:https://docs.bolt.cm/3.4/configuration/routing#

1 个答案:

答案 0 :(得分:2)

Silex / Symfony中的路由是基于正则表达式的,匹配是二进制的,所以不幸的是,一旦路由匹配,那么唯一的一个将被运行,因此第一个路由匹配而第二个路由被忽略。

没有办法做你想要的开箱即用 - 要实现它你需要将第一场比赛指向你自己的控制器方法,而不是你自己的方法中的默认controller.frontend:record循环遍历你想要支持的内容类型,并一直寻找,直到你找到一个匹配的slug而不管内容类型。

Bolt无法将此作为标准功能支持,因为它会在边缘情况下引起相当多的复杂化,例如,如果一个slug在多个内容类型中可用,或者后端是否应该允许某些内容类型,则如何表现产生相同的slu ..