Laravel 5.7:用于维护模式的自定义刀片模板,但不是503.blade.php

时间:2019-01-04 04:28:06

标签: php laravel laravel-5.7

每次打开php artisan down时,Laravel都会显示503页。

好。我可以通过在503.blade.php内创建名为resources/views/errors的新文件来自定义它。

但是,尽管它使客户端无法访问网站并且对HTTP 503的描述一致,但我在任何时候都不会将维护模式视为错误。

  

503服务不可用错误是服务器端错误,这意味着   问题通常出在网站的服务器上。 ...即使503   服务不可用错误表示另一个错误   计算机,这个问题可能只是暂时的。

如何定义自己的刀片模板(例如maintenance_mode.blade.php)以自定义用户在应用关闭期间看到的内容,并保持503完整?

我的努力:我调查了供应商内部的中间件本身,但它仅引发异常,我假设异常被某个地方捕获并以相应视图处理响应?有人可以指出我如何实现我的需求吗?

谢谢

2 个答案:

答案 0 :(得分:2)

一种方法可能是在Exception的Handler中更改render方法。像这样:

// app_path('Exceptions/Handler.php');

/**
 * Render an exception into an HTTP response.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Exception  $exception
 * @return \Illuminate\Http\Response
 */
public function render($request, Exception $exception)
{
    if ($exception instanceof \Illuminate\Foundation\Http\Exceptions\MaintenanceModeException) {
        return response()
            ->view('maintenance.down', [
                'message' => 'Come back later.'
            ], 200)
            ->header('Content-Type', 'text/html; charset=utf-8');
    }

    return parent::render($request, $exception);
}

答案 1 :(得分:0)

如果要在服务器维护中显示自定义消息(503.blade.php)

Laravel具有开箱即用的自定义功能

php artisan down --message="We are Upgrading look and feel"

现在,我们are Upgrading look and feel将在用户访问页面时显示在页面中

如果您想进行更多自定义,请查找包装

https://github.com/MisterPhilip/maintenance-mode

如果此答案是irrelevnt或不是fixed your problem,请在下面发表评论,以便我解决该问题

希望有帮助

已编辑

好,然后在终端中运行命令

php artisan vendor:publish并选择0,以便它将发布所有视图和配置

现在打开您的视图文件夹,其中会有一个errors

文件夹,您可以看到list of error files提供的laravel现在根据您的自定义进行了更改,并运行php artisan opt:clear,它将清除所有cache views ,configs并立即尝试

通过自定义您的503.blade.php,现在可以正常使用

您可以仅查看自定义404.blade.php的教程并根据要求进行自定义

Customize 404 in laravel