我在CakePHP 3中创建了一个Web应用程序,当我有debug = true
时,一切正常。当我设置debug = false
时,我无法访问基本网址并收到以下消息。
未找到
错误:请求的地址' /'在这台服务器上找不到。
我检查了我的路线文件,它仍然指向/ Pages /显示以下代码。
$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
src/Template/Pages/home.ctp
的模板存在,所以我完全无能为力,为什么它在禁用调试时无法正常工作。
我使用composer创建了一个新的CakePHP 3站点,然后禁用调试但是遇到了同样的问题。
我查看了我的错误日志,发现了这个。
2016-02-03 09:53:11 Error: [Cake\Network\Exception\NotFoundException] Not Found
Request URL: /
Stack Trace:
#0 /var/www/html/printsling/vendor/cakephp/cakephp/src/View/View.php(992): include()
#1 /var/www/html/printsling/vendor/cakephp/cakephp/src/View/View.php(952): Cake\View\View->_evaluate('/var/www/html/p...', Array)
#2 /var/www/html/printsling/vendor/cakephp/cakephp/src/View/View.php(587): Cake\View\View->_render('/var/www/html/p...')
#3 /var/www/html/printsling/vendor/cakephp/cakephp/src/Controller/Controller.php(612): Cake\View\View->render('home', NULL)
#4 /var/www/html/printsling/src/Controller/PagesController.php(66): Cake\Controller\Controller->render('home')
#5 [internal function]: App\Controller\PagesController->display('home')
#6 /var/www/html/printsling/vendor/cakephp/cakephp/src/Controller/Controller.php(430): call_user_func_array(Array, Array)
#7 /var/www/html/printsling/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(114): Cake\Controller\Controller->invokeAction()
#8 /var/www/html/printsling/vendor/cakephp/cakephp/src/Routing/Dispatcher.php(87): Cake\Routing\Dispatcher->_invoke(Object(App\Controller\PagesController))
#9 /var/www/html/printsling/webroot/index.php(37): Cake\Routing\Dispatcher->dispatch(Object(Cake\Network\Request), Object(Cake\Network\Response))
#10 {main}
感谢任何帮助。
答案 0 :(得分:1)
I found the answer here. Why does changing debug to 0 in CakePHP break static Pages?
尽管我删除了home.ctp文件以删除所有可能导致安全风险的信息,但是文件顶部有3行检查应用程序是否处于调试模式并且如果{{{{{{{ 1}}。
删除了以下3行。
true