我无法在生产环境中关闭 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