Laravel维护模式刷新和渲染参数



我正试图通过php artisan down将我的应用程序置于维护模式。

php artisan down --refresh=5工作正常,浏览器在5秒后刷新

如果我想用php artisan down --render="maintenance.index"呈现自定义维护视图,它会像我想要的那样呈现位于resources/views/maintenance/index.blade.php的视图。

但是当我同时使用这两个参数时

php artisan down --render="maintenance.index" --refresh=5

它只是呈现自定义视图,但在5秒后不刷新。我想也许我输入参数的顺序很重要。但这两种方法都行不通。

php artisan down --refresh=5 --render="maintenance.index"

是否有可能把我的应用程序进入维护模式,渲染自定义视图和刷新页面每5秒不编辑默认的503.blade.php文件?

如果您随时需要5秒的时间来定制维护视图,只需添加refreshhtml标记

<head>
<title>{{ config('app.name') }}</title>
<meta charset="utf-8">
<meta http-equiv="refresh" content="5">
</head>

在我的脑海中,我不确定在laravel中refresh属性改变了什么,以便在模板中动态地应用它,但我将在今天晚些时候进一步研究这个问题。

编辑1:

Laravel为维护模式存储存根文件,但我找不到影响refresh参数与render组合的结果。

然而,我找到了一个解决方法来存档相同的。refresh属性在$_SERVER['argv']环境变量中,它可以很容易地解析并添加到刀片视图中:

@php
$result = array_values(preg_grep('/(--refresh)/', array_values( $_SERVER['argv'] ) ));
if(!empty($result)){
$refresh = substr($result[0], strpos($result[0], "=") + 1);
}
@endphp
<!DOCTYPE html>
<html lang="en">
<head>
<title>{{ config('app.name') }}</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
@if(isset($refresh))
<meta http-equiv="refresh" content="{{$refresh}}">
@endif
<!-- Fonts -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap">
<!-- Styles -->
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
</head>
<body>
<!-- your content here... -->

</body>
</html>

编辑2:

这个问题现在修复在Laravel PR[8]。x]修复了down时刷新的问题#42217

最新更新