目前我使用的是Laravel5。 我的问题是,如果我使用维护模式
php artisan down
怎么能说“除了我自己的ip之外,应用程序已经关闭了”? 所以每个人都看到维护模式,但我仍然可以访问该网站。
答案 0 :(得分:16)
在Laravel 5中,您必须创建自己的中间件。 在app / Http / Middleware / CheckForMaintenanceMode.php中创建一个文件 您当然可以选择任何文件名。
<?php namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Http\Request;
use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as MaintenanceMode;
class CheckForMaintenanceMode {
protected $app;
public function __construct(Application $app)
{
$this->app = $app;
}
public function handle(Request $request, Closure $next)
{
if ($this->app->isDownForMaintenance() &&
!in_array($request->getClientIp(), ['8.8.8.8', '8.8.4.4']))
{
$maintenanceMode = new MaintenanceMode($this->app);
return $maintenanceMode->handle($request, $next);
}
return $next($request);
}
}
在你的app / Http / Kernel.php中更改
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode'
到
'App\Http\Middleware\CheckForMaintenanceMode'
答案 1 :(得分:6)
现在您可以使用php artisan down --allow=127.0.0.1
,或者当然可以将IP更改为其他名称。还支持多个IP,也支持网络。
不确定何时实现,但在5.6版中对我来说效果很好
答案 2 :(得分:1)
class MyValueFormatter : ValueFormatter() {
private val days = mapOf(0.0f to "Mon", 20.0f to "Tu", 40.0f to "Wed", 60.0f to "Th", 80.0f to "Fr", 100.0f to "Sa", 120.0f to "Su")
override fun getAxisLabel(value: Float, axis: AxisBase?): String {
return if (days.containsKey(value)) days[value] else value.toString()
}
}
答案 3 :(得分:1)
在文件 index.php 中更改地址 maintenace.php 例如:
if (file_exists(__DIR__.'/../your-file-name/storage/framework/maintenance.php')) {
require __DIR__.'/../your-file-name/storage/framework/maintenance.php';
}
我使用 Laravel 8。
答案 4 :(得分:0)
您的问题的另一个解决方案是在本地开发,因此只有您可以看到应用程序的开发版本。每个人都可以看到的应用程序(生产服务器上的应用程序)可以设置为维护模式,直到您准备好向全世界展示它。然后,您可以将应用程序部署到服务器并关闭维护模式。
我说的是,可能不需要自动执行此过程,因为您在部署应用程序时可能会出现在服务器上,因此您可以手动转换模式打开和关闭。
使用WAMP / MAMP,Laravel's Homestead,Laravel Valet或专家Laradock可以非常轻松地开发本地。当然,你可以使用任何。
答案 5 :(得分:0)
对于Laravel 8:
即使在维护模式下,也可以使用secret选项来 指定维护模式旁路令牌:
php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"
将应用程序置于维护模式后,您可以导航到 与此令牌匹配的应用程序URL,Laravel将发出一个 维护模式绕过Cookie进入您的浏览器:
https://example.com/1630542a-246b-4b66-afa1-dd72a4c43515
访问此隐藏路线时,您将被重定向到/ 应用程序的路线。 Cookie发放给您后 浏览器,您将能够正常浏览该应用程序,就像 不在维护模式。
Laravel 8中的维护模式具有一些不错的新功能。Read it here.