Laravel 默认错误页面在服务器中有所不同 [minimal.blade vsillustrated.blade]

Posted

技术标签:

【中文标题】Laravel 默认错误页面在服务器中有所不同 [minimal.blade vsillustrated.blade]【英文标题】:Laravel default error pages are different in server [minimal.blade vs illustrated.blade] 【发布时间】:2019-08-11 13:36:41 【问题描述】:

我已将我的 Laravel 项目从 5.6 升级到 5.8(在我第一次部署之前在我的本地)。

两个 Laravel 版本都是使用相同的 composer.json 安装的 5.8.5

在我的本地中,错误页面(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

【问题讨论】:

您是否在本地运行composer update,提交新的composer.lock,并在现场运行composer install 是的,我在第一次实时部署之前在本地升级了项目 澄清一下,您确实在新的 composer.**lock** 提交后在您的实时服务器上运行了 composer install 吗?我只是想排除一个简单的错误 是的 - 如果我尝试 php artisan --v 它告诉我它在现场和本地都是 5.8.5 你能附上你的resources/views/errors/404.blade.php吗? 【参考方案1】:

它看起来像 Laravel 5.8 中 vendor/ changed 中的默认 404 错误视图,从图示布局到最小布局,可能是有一个不那么自以为是的默认值。

如果您想恢复以前的视图,我建议您在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 并编辑@Constantin 指出的5 行代码相同,但由于最初只有8 行代码,因此您选择哪种方法实际上并不重要。基本思想是相同的:在 resources/ 中明确定义您的视图,而不是回退到框架提供的 vendor/ 默认值(可能会更改)。

【讨论】:

你为什么要提交更改? @ZaimanNoris 我不知道原因,但我猜他们试图将设计和样式选择排除在框架的默认设置之外。【参考方案2】:

也许晚了,但您也可以从 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

【讨论】:

您可以从这里获取 svg 文件:github.com/laravel/laravel/tree/5.7/public/svg 这应该是公认的答案

以上是关于Laravel 默认错误页面在服务器中有所不同 [minimal.blade vsillustrated.blade]的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel中更改各个页面的不同标题

Laravel 5上未显示自定义错误页面

全新安装后 Laravel 页面无法正常工作

Laravel 5.2 在同一页面上登录和注册表单

如何使用laravel 4安静地返回图像?

Laravel 5:404 路线上的会话