Страницы ошибок Laravel по умолчанию отличаются на сервере [minimal.blade vs illustrated.blade]

#php #laravel #user-interface #laravel-5.8

#php #laravel #пользовательский интерфейс #laravel-5.8

Вопрос:

Я обновил свой проект Laravel с 5.6 до 5.8 (в моем локальном перед первым развертыванием в live).

Обе версии Laravel 5.8.5 установлены с одним и тем же composer.json

На моем локальном сервере страницы ошибок (404, 503) являются иллюстрированными:

введите описание изображения здесь

vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/illustrated-layout.blade.php

однако на действующем сервере

vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/minimal.blade.php

введите описание изображения здесь

Что является причиной этого? Я хочу, чтобы в прямом эфире показывались и иллюстрированные страницы с красивой кнопкой возврата.


Пробовал эти, но безуспешно: (

 php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear
  

Комментарии:

1. Вы запускали composer update на локальном, фиксировали новое composer.lock и запускали composer install в режиме реального времени?

2. да, я обновил проект на своем локальном сервере перед первым развертыванием в live

3. Просто чтобы уточнить, вы запускали composer install на своем рабочем сервере после того, как был установлен новый composer.** блокировка ** была зафиксирована? Я просто хочу исключить простую ошибку

4. да — если я попробую php artisan --v , он скажет мне, что это 5.8.5 как для live, так и для local

5. Можете ли вы включить свой resources/views/errors/404.blade.php ?

Ответ №1:

Возможно, поздно, но вы также могли бы повторно опубликовать файлы из версии 5.8, не копируя их из версии 5.7 или не создавая новые:

 php artisan vendor:publish --tag=laravel-errors
  

Все шаблоны блейда должны быть снова доступны в разделе просмотры / ошибки.

В представлениях, которые мне просто пришлось изменить

 @extends('errors::minimal')
  

в

 @extends('errors::illustrated-layout')
  

и добавить

 @section('image')
<div style="background-image: url({{ asset('/svg/403.svg') }});" class="absolute pin bg-cover bg-no-repeat md:bg-left lg:bg-center">
</div>
@endsection
  

Комментарии:

1. Вы можете получить svg-файлы отсюда: github.com/laravel/laravel/tree/5.7/public/svg

2. это должно было быть принятым ответом

Ответ №2:

Похоже, что представление ошибки 404 по умолчанию в vendor/ изменено в Laravel 5.8 с иллюстрированного макета на минимальный макет, возможно, чтобы иметь менее самоуверенное значение по умолчанию.

Я рекомендую создать свой собственный вид в разделе resources/views/errors/404.blade.php , если вы хотите вернуть предыдущий вид. Вы можете скопировать иллюстрированный вид непосредственно из версии 5.7, если это то, что вы хотели отобразить: https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Exceptions/views/404.blade.php

Иллюстрированные макеты по-прежнему доступны, просто они больше не используются по умолчанию.

Копирование старого представления по сути такое же, как запуск php artisan vendor:publish --tag=laravel-errors и редактирование 5 строк, как отметил @Constantin, но поскольку в оригинале для начала было всего 8 строк кода, на самом деле не имеет значения, какой метод вы выбрали. Основная идея та же: явно определите свой вид в resources/ вместо того, чтобы возвращаться к vendor/ значениям по умолчанию, предоставляемым фреймворком (которые могут измениться).

Комментарии:

1. Вы знаете, почему изменение было зафиксировано?

2. @ZaimanNoris Я не знаю причины, но я предполагаю, что они пытаются исключить выбор дизайна и стиля из настроек по умолчанию для фреймворка.