Laravel: экран отладки не отображается после обновления с 5.4 до 5.5 - PullRequest
0 голосов
/ 26 июня 2018

Я обновил свое приложение с Laravel 5.4 до 5.5. И теперь, когда я ввожу неправильный URL, вместо того, чтобы показать мне страницу отладки для не найденного исключения, он показывает мне прекрасную страницу 404 с текстом «Извините, страница, которую вы ищете, не может быть найдена». Это похоже на ситуацию, когда вы запускаете приложение в рабочей среде, содержащей APP_DEBUG=false в файле .env. Но здесь я установил APP_DEBUG=true и APP_ENV=local в моем локальном окружении.

Где может быть проблема?

Ответы [ 3 ]

0 голосов
/ 02 июля 2018

Laravel 5.5 теперь содержит страницы ошибок для различных кодов состояния HTTP, включая 404. И использует эти страницы ошибок, если у вас нет пользовательских страниц ошибок.

Если вы проверите папку laravel\framework\src\Illuminate\Foundation\Exceptions\views, вы получите эти страницы ошибок. И они отсутствовали в v5.4.

Вы можете проверить официальную документацию , чтобы настроить страницу 404 для своих нужд.

Когда Laravel генерирует исключение NotFoundHttpException, оно обрабатывается методом рендеринга в классе App\Exceptions\Handler. Затем, в зависимости от исключения, здесь готовится ответ. И для этого конкретного исключения Laravel готовит ответ, используя файл представления ошибок 404.

Например, если вы удалите файл vendor\laravel\framework\src\Illuminate\Foundation\Exception‌​s\views\404.blade‌​.ph‌​p, вы получите исключение и трассировку стека, отображаемую whoops. При условии, что у вас тоже нет файла resources\views\errors\404.blade.php.

Поэтому, если вы хотите перехватить исключение NotFoundHttpException, вы можете сделать это из метода render в App\Exceptions\Handler классе:

if ($exception instanceof NotFoundHttpException) {
    throw $exception;
} else {
    return parent::render($request, $exception);
} 
0 голосов
/ 02 июля 2018

Laravel выполняет некоторое кэширование в своем контейнере IOC, поэтому обязательно очистите кеш конфигурации:

php artisan config:clear

и просто ради этого беги

php artisan view:clear

затем, наконец, установите новый кеш конфигурации:

php artisan cache:config

Сам файл находится в bootstrap/cache/config.php

0 голосов
/ 02 июля 2018

in laravel 5.5 Вы должны проверить APP_DEBUG, APP_LOG_LEVEL, APP_ENV
в вашем .env файле должно быть как ниже

APP_DEBUG=true
APP_LOG_LEVEL=debug

и ваш config \ app.php, как показано ниже

'env' => env('APP_ENV', 'development'),
'debug' => env('APP_DEBUG', true),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...