0

我正在尝试用 CakePHP 3.8Router::url()方法替换我的所有静态路由。

manage/lender-products/read/2在我的本地环境中,当从路由访问以下代码时,我会/manage/lenders从以下代码中获得预期结果:

\Cake\Routing\Router::url(['controller' => 'Lenders', 'action' => 'index'])

但是,在生产(bref.sh/AWS Lambda/PHP 7.4)中,我得到了/manage/lender-products/read/manage/lenders.

看来,在我的生产环境中,正在生成 URL,并在最终结果中包含当前页面 url。

4

1 回答 1

0

如果您没有为App.baseconfig 选项设置自定义基本路径,CakePHP 将尝试根据$_SERVER['PHP_SELF']and自行计算可能的基本路径$_SERVER['DOCUMENT_ROOT'],因此其中一个或两个可能包含 AWS 环境中的意外值。

简单的解决方法是在您的config/app.php. 如果您的应用程序实际上并不存在于公共子目录中(即,如果webroot是您的文档根目录),那么您应该将路径设置为空字符串,否则提供路径,例如/my/app(带有前导斜杠,但没有尾部斜杠!)。

也可以看看

于 2021-02-03T08:31:43.433 回答