Я не могу отключить панель отладки в Laravel на производстве


Я установил

'enabled' = false

Как в пакете, так и в config/debugbar.php

Я очистил кэш с помощью

php artisan cache:clear
Но я все еще вижу это в производственной среде. Я случайно совершил
'enabled' = false

Случайно и не может его выключить. Я даже откатил коммиты, но это не помогло. Есть идеи?

@edit the .env также имеет отладочное значение false

@edit2 также, когда я получил маршрут ot / login в новом браузере (или приватном режиме), я не вижу панели, но когда я обновляю это страница, она снова там

4   3   2017-10-20 15:07:12

4 ответа:

Решение для 5.5 и выше

Установите пакет с помощью:

composer require barryvdh/laravel-debugbar:dev-master

Из-за функции автоматического обнаружения пакетов вам не нужно добавлять поставщика услуг пакета в список providers в config/app.php, и Debugbar будет загружен только в среде разработки.

Решение для 5.4 и ниже

Поместите этот код в AppServiceProvider@register:

if ($this->app->isLocal()) {
    $this->app->register('Barryvdh\Debugbar\ServiceProvider');
}

Не забудьте удалить строку Laravel Debugbar из раздела config/app.php providers.

После этого, Laravel Debugbar будет загружен только в локальной среде.

Вы пробовали изменить его в .env файл.

Найдите значение APP_DEBUG в поле .env файл и установить его 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);
    }
}

И под композитором.json в дополнительном:

"extra": {
    "laravel": {
        "dont-discover": [
            "barryvdh/laravel-debugbar"
        ]
    }
},

Тогда вам хорошо пойти и включить и отключить via .env, если он отличается от производства, он будет включен (локальный, тестирование и т. д..) если он находится на производстве, он будет автоматически отключен.

Надеюсь, это поможет, удачи!

Это не вопрос debugbar ,это общая проблема.ОКР. Вы можете изменить свое имя приложения, чтобы увидеть, что оно ничего не меняет.

Чтобы применить ваши новые изменения конфигурации в том числе .env изменения вам нужно запустить команду artisan в папке проекта:

php artisan config:cache