我无法在生产环境中关闭 Laravel 中的调试栏
I can't turn off debug bar in Laravel on production
我设置了
'enabled' = false
包和 config/debugbar.php
我用
清除了缓存
php artisan cache:clear
但我仍然在生产环境中看到它。
我不小心犯了
'enabled' = false
不小心,无法将其关闭。我什至回滚了提交,但这无济于事。有什么想法吗?
@edit .env 也将调试设置为 false
@edit2 当我在新浏览器(或私人模式)上获得 ot /login 路由时,我没有看到该栏,但是当我刷新此页面时,它又出现了
5.5及以上的解决方案
安装包:
composer require barryvdh/laravel-debugbar:dev-master
由于包的自动发现功能,您不需要将包的服务提供者添加到config/app.php
中的providers
列表中,Debugbar只会在开发环境中加载。
5.4 及以下版本的解决方案
把这段代码放到AppServiceProvider@register
:
if ($this->app->isLocal()) {
$this->app->register('Barryvdh\Debugbar\ServiceProvider');
}
不要忘记从 config/app.php
提供商部分删除 Laravel 调试栏行。
执行此操作后,Laravel Debugbar 将仅在本地环境中加载。
您尝试过在 .env 文件中更改它吗?
在 .env 文件中查找值 APP_DEBUG
并将其设置为 false
.
开箱即用,.env 已将其设置为 true
。
如果您使用的是 5.4,您可以在 AppServiceProvider 下执行以下操作:
public function register()
{
/*
* Sets third party service providers that are only needed on local/testing environments
*/
if ($this->app->environment() != 'production') {
/**
* Loader for registering facades.
*/
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
/*
* Load third party local aliases
*/
$loader->alias('Debugbar', \Barryvdh\Debugbar\Facade::class);
}
}
如果你想在 5.5 下完全控制你可以在同一个 AppServiceProvider 中做:
public function register()
{
/*
* Sets third party service providers that are only needed on local/testing environments
*/
if ($this->app->environment() != 'production') {
/**
* Loader for registering facades.
*/
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
/*
* Load third party local providers
*/
$this->app->register(\Barryvdh\Debugbar\ServiceProvider::class);
/*
* Load third party local aliases
*/
$loader->alias('Debugbar', \Barryvdh\Debugbar\Facade::class);
}
}
及composer.json下的额外内容:
"extra": {
"laravel": {
"dont-discover": [
"barryvdh/laravel-debugbar"
]
}
},
那么你可以通过 .env 启用和禁用,如果它与生产环境不同,它将被启用(本地、测试等),如果它在生产环境中,它将被自动禁用。
希望对你有所帮助,祝你好运!
这不是调试栏的问题,这是 .env 的一般问题。您可以更改 APP_NAME 以查看它没有任何更改。
要应用包括 .env 更改在内的新配置更改,您需要在项目文件夹中使用 运行 artisan 命令:
php artisan config:cache
转到 .env
并设置
DEBUGBAR_ENABLED=false
或
APP_DEBUG=false
我设置了
'enabled' = false
包和 config/debugbar.php
我用
清除了缓存php artisan cache:clear
但我仍然在生产环境中看到它。 我不小心犯了
'enabled' = false
不小心,无法将其关闭。我什至回滚了提交,但这无济于事。有什么想法吗?
@edit .env 也将调试设置为 false
@edit2 当我在新浏览器(或私人模式)上获得 ot /login 路由时,我没有看到该栏,但是当我刷新此页面时,它又出现了
5.5及以上的解决方案
安装包:
composer require barryvdh/laravel-debugbar:dev-master
由于包的自动发现功能,您不需要将包的服务提供者添加到config/app.php
中的providers
列表中,Debugbar只会在开发环境中加载。
5.4 及以下版本的解决方案
把这段代码放到AppServiceProvider@register
:
if ($this->app->isLocal()) {
$this->app->register('Barryvdh\Debugbar\ServiceProvider');
}
不要忘记从 config/app.php
提供商部分删除 Laravel 调试栏行。
执行此操作后,Laravel Debugbar 将仅在本地环境中加载。
您尝试过在 .env 文件中更改它吗?
在 .env 文件中查找值 APP_DEBUG
并将其设置为 false
.
开箱即用,.env 已将其设置为 true
。
如果您使用的是 5.4,您可以在 AppServiceProvider 下执行以下操作:
public function register()
{
/*
* Sets third party service providers that are only needed on local/testing environments
*/
if ($this->app->environment() != 'production') {
/**
* Loader for registering facades.
*/
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
/*
* Load third party local aliases
*/
$loader->alias('Debugbar', \Barryvdh\Debugbar\Facade::class);
}
}
如果你想在 5.5 下完全控制你可以在同一个 AppServiceProvider 中做:
public function register()
{
/*
* Sets third party service providers that are only needed on local/testing environments
*/
if ($this->app->environment() != 'production') {
/**
* Loader for registering facades.
*/
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
/*
* Load third party local providers
*/
$this->app->register(\Barryvdh\Debugbar\ServiceProvider::class);
/*
* Load third party local aliases
*/
$loader->alias('Debugbar', \Barryvdh\Debugbar\Facade::class);
}
}
及composer.json下的额外内容:
"extra": {
"laravel": {
"dont-discover": [
"barryvdh/laravel-debugbar"
]
}
},
那么你可以通过 .env 启用和禁用,如果它与生产环境不同,它将被启用(本地、测试等),如果它在生产环境中,它将被自动禁用。
希望对你有所帮助,祝你好运!
这不是调试栏的问题,这是 .env 的一般问题。您可以更改 APP_NAME 以查看它没有任何更改。
要应用包括 .env 更改在内的新配置更改,您需要在项目文件夹中使用 运行 artisan 命令:
php artisan config:cache
转到 .env
并设置
DEBUGBAR_ENABLED=false
或
APP_DEBUG=false