首页 > 解决方案 > 更改路线加载顺序的最佳方法

问题描述

我在 /config/routes/annotations.yaml 中加载了控制器中的路由

controllers:
     resource: ../../src/Controller/
     type: annotation

我在 /config/routes.yaml 中有路线

about:
    path:         /about
    controller:   Symfony\Bundle\FrameworkBundle\Controller\TemplateController::templateAction
    defaults:
        template: front/about.html.twig
        ...

“控制器”中的动态路由覆盖了我的“静态”路由。

在控制器中加载“静态”路由的最佳方法是什么。

我通过评论 /config/routes/annotations.yaml 中的内容并将其粘贴到 /config/routes.yaml 的末尾来使其工作,但我认为这不是最好的方法......

标签: symfonyroutessymfony4

解决方案


但从技术上讲,这可能还不够。在此之后加载的任何路由都将被忽略,如果您使用注释,则必须将此操作放在按字母顺序排序的最后一个控制器的最后一个操作中。

在 yml 中配置这条路由,放在 routes.yml 的末尾。

此路由将是最后执行的(性能损失),它将捕获所有请求,因此请确保正确抛出 404-s。

(我是否正确假设客户端希望能够完全配置路由?例如 CMS 页面?有几次这种情况)


推荐阅读