我需要为我的网络应用设置一个默认功能,为每个http请求返回维护视图。
我做到了:
Route::group(['prefix' => '/'], function() {
return view('maintenance');
});
但是当我以http://www.mypage.com/profile为例时 它有效。
我应该如何设置路线?
谢谢。
答案 0 :(得分:0)
使这最简单的方法可以将整个网站带入维护模式(因为我不确定这是一次还是单独的每一页)。
您可以使用数据库执行以下操作:
php artisan make:migration create_maintenance_mode_table --create=maintenance_mode
在此文件中添加一个简单的:
$table->integer('enabled')->default(0);
然后运行php artisan migrate
然后设置模型:
php artisan make:model Maintenance
在此文件中添加:
protected $table = 'maintenance_mode';
protected $fillable = [ 'enabled' ];
在此之后我们需要设置中间件:
php artisan make:middleware CheckMaintenanceMode
在此文件处理函数中,您需要添加:
$maintenance = Maintenance::select('enabled')->get()->first();
if ($maintenance->enabled == 1)
{
return view('maintenance');
}
return $next($request);
在kernel.php文件中添加$routeMiddleware
'maintenance' => \App\Http\Middleware\CheckMaintenanceMode::class,
您现在需要设置视图文件:maintenance.blade.php
现在,在路线文件中,您需要在所有其他路线请求周围添加以下内容:
Route::group(['middleware' => ['maintenance']], function () {
// Other Routes
});
看起来相当长的啰嗦,你可以用其他方式做到这一点,但这是我在自己的项目中使用的。
答案 1 :(得分:0)
为什么不使用集成维护模式?
php artisan down
禁用维护模式
php artisan up
要排除您的IP以继续开发,您可以尝试使用此中间件
class CheckForMaintenanceMode {
protected $app;
public function __construct(Application $app)
{
$this->app = $app;
}
public function handle($request, Closure $next)
{
$white = $_ENV['MAINTENANCE_WHITELIST']; // Get WhiteListed IP from .ENV
$ip = $request->ip(); // Get Visior IP with no Proxy (like Cloudflare)
// $ip = $_SERVER["HTTP_CF_CONNECTING_IP"]; // Get Real Visitor IP with CloudFlare enabled
if ($this->app->isDownForMaintenance() &&
!in_array($ip, [$white]))
{
$maintenanceMode = new MaintenanceMode($this->app);
return $maintenanceMode->handle($request, $next);
}
return $next($request);
}}
别忘了将中间件添加到/app/http/kernel.php
protected $middleware = [
...
\App\Http\Middleware\CheckForMaintenanceMode::class,
...
];
答案 2 :(得分:0)
Laravel没有
的维护模式支持在命令行中执行 php artisan down 以启用维护模式(您可以使用php artisan up,以禁用维护)
如果你不想使用工匠。你可以创建' down'在存储/框架/向下手动文件以启用维护或将其删除以禁用
此外,您可以在resources / views / errors / 503.blade.php中创建维护视图
更多信息:https://laravel.com/docs/5.5/configuration#maintenance-mode