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

Mat*_*cki 5 php laravel laravel-5.7

每次php artisan down开启,Laravel 显示 503 页。

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

关键是我不认为维护模式在任何时候都是错误的,尽管它使客户无法使用网站。

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

我如何定义我自己的刀片模板(比方说maintenance_mode.blade.php)来自定义用户在应用程序关闭期间看到的内容并保持 503 完好无损?

我的努力:我调查了供应商内部的中间件本身,但它只抛出异常,我认为异常是在某处被捕获并使用相应的视图处理响应?有人可以指出我如何实现我所需要的吗?

谢谢

Tpo*_*jka 9

一种方法可能是更改异常处理程序中的渲染方法。就像是:

// 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);
}
Run Code Online (Sandbox Code Playgroud)