【发布时间】:2015-09-04 16:06:10
【问题描述】:
将 Cake 核心升级到 2.6.7 后,插件控制器操作的 URL 路径不再有效。
例如,访问如下 URL:mysite.com/plugin_name/controller_name/action
给我一个“控制器”未找到错误。这些路径在更新之前有效,这让我相信版本之间的 API 发生了一些变化。
【问题讨论】:
标签: url cakephp plugins path routes
将 Cake 核心升级到 2.6.7 后,插件控制器操作的 URL 路径不再有效。
例如,访问如下 URL:mysite.com/plugin_name/controller_name/action
给我一个“控制器”未找到错误。这些路径在更新之前有效,这让我相信版本之间的 API 发生了一些变化。
【问题讨论】:
标签: url cakephp plugins path routes
问题是我在 bootstrap.php 文件中的 CakePlugin::load() 调用之前有一些 Configure::load() 调用。
在所有插件加载后移动 Configure::load() 调用为我解决了这个问题。
至于为什么会这样: 看起来在 CakePHP 的 2.6 版中,调用 Configure::load() 将导致 /lib/Cake/Config/routes.php 被加载。此文件加载 Router 类的所有 URL 解析模式。如果在包含此文件时没有加载任何插件,则不会加载插件的 URL 解析模式(如 '/:plugin/:controller/:action/*')。
【讨论】: