Вопрос:

Почему изменение отладки на 0 в CakePHP нарушает статические страницы?

cakephp

2417 просмотра

1 ответ

1287 Репутация автора

Все работало нормально. Нет ошибок Я изменяю отладку на 0, и внезапно мои страницы выдают 404 ошибки, и в своих журналах я замечаю, что переменные, которые я объявил в своем контроллере приложения (которые работали отлично раньше), теперь возвращаются как не определенные.

Weirdness. Почему изменение отладки на 0 вызывает такое поведение?

Изменить: 18 апреля 2012

Я ковырялся в контроллере Pages. После «$ path = func_get_args ();» когда я бросил кристалл (print_r ($ path)). С отладкой 1 или 2 это возвращает это на моей домашней странице:

Array
(
    [0] => home
)

Пусто, когда отладка установлена ​​в 0.

Вот некоторые из моих маршрутов:

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/login', array('controller' => 'users', 'action' => 'login'));
Router::connect('/logout', array('controller' => 'users', 'action' => 'logout'));

Router::connect('/today', array('controller' => 'users', 'action' => 'today'));
Router::connect('/profile', array('controller' => 'users', 'action' => 'profile'));

$staticPages = array(
        'about',
        'contact'
);

$staticList = implode('|', $staticPages);

Router::connect('/:static', array(
    'plugin' => false,
    'controller' => 'pages',
    'action' => 'display'), array(
        'static' => $staticList,
        'pass' => array('static')
    )
);

Из журнала отладки:

2012-04-17 10:28:08 Notice: Notice (8): Undefined variable: loggedIn in [/Users/conrad/Desktop/Creative/DEV/virtutrain/app/View/Elements/Header.ctp, line 3]
Trace:
include - APP/View/Elements/Header.ctp, line 3
View::_evaluate() - CORE/Cake/View/View.php, line 908
View::_render() - CORE/Cake/View/View.php, line 872
View::element() - CORE/Cake/View/View.php, line 412
include - APP/View/Layouts/default.ctp, line 22
View::_evaluate() - CORE/Cake/View/View.php, line 908
View::_render() - CORE/Cake/View/View.php, line 872
View::renderLayout() - CORE/Cake/View/View.php, line 527
View::render() - CORE/Cake/View/View.php, line 471
Controller::render() - CORE/Cake/Controller/Controller.php, line 959
ExceptionRenderer::_outputMessage() - CORE/Cake/Error/ExceptionRenderer.php, line 263
ExceptionRenderer::error400() - CORE/Cake/Error/ExceptionRenderer.php, line 209
ExceptionRenderer::render() - CORE/Cake/Error/ExceptionRenderer.php, line 165
ErrorHandler::handleException() - CORE/Cake/Error/ErrorHandler.php, line 127
[main] - [internal], line ??

Журнал ошибок:

2012-04-17 10:28:08 Error: [NotFoundException] Not Found
#0 /Users/conrad/Desktop/Creative/DEV/virtutrain/lib/Cake/View/View.php(908): include()
#1 /Users/conrad/Desktop/Creative/DEV/virtutrain/lib/Cake/View/View.php(872): View->_evaluate('/Users/conrad/D...', Array)
#2 /Users/conrad/Desktop/Creative/DEV/virtutrain/lib/Cake/View/View.php(463): View->_render('/Users/conrad/D...')
#3 /Users/conrad/Desktop/Creative/DEV/virtutrain/lib/Cake/Controller/Controller.php(959): View->render('about', NULL)
#4 /Users/conrad/Desktop/Creative/DEV/virtutrain/app/Controller/PagesController.php(88): Controller->render('about')
#5 [internal function]: PagesController->display('about')
#6 /Users/conrad/Desktop/Creative/DEV/virtutrain/lib/Cake/Controller/Controller.php(485): ReflectionMethod->invokeArgs(Object(PagesController), Array)
#7 /Users/conrad/Desktop/Creative/DEV/virtutrain/lib/Cake/Routing/Dispatcher.php(103): Controller->invokeAction(Object(CakeRequest))
#8 /Users/conrad/Desktop/Creative/DEV/virtutrain/lib/Cake/Routing/Dispatcher.php(85): Dispatcher->_invoke(Object(PagesController), Object(CakeRequest), Object(CakeResponse))
#9 /Users/conrad/Desktop/Creative/DEV/virtutrain/app/webroot/index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#10 {main}

Опять же ... не получаю никаких ошибок, когда отладка на 1 или 2 ...

Эта установка выполняется локально на MAMP, но ошибки также возникают на опубликованном сайте, который работает в сеточной службе MediaTemple (с более или менее настройками по умолчанию).

Автор: Benjamin Allison Источник Размещён: 17.04.2012 02:17

Ответы (1)


3 плюса

1287 Репутация автора

Ого ... это было в моем просмотре страницы home.ctp и скопировано на все остальные страницы:

if (Configure::read('debug') == 0):
    throw new NotFoundException();
endif;

Главный невнят, но независимо ... проблема решена.

Автор: Benjamin Allison Размещён: 18.04.2012 12:51
Вопросы из категории :
32x32