Laravel 5 Clear Views Cache

117

Я заметил, что представления кэша Laravel хранятся в ~/storage/framework/views. Со временем они съедают мое пространство. Как мне их удалить? Есть ли какая-нибудь команда, которая могла бы? Я пробовал php artisan cache:clear, но он не очищает кеш просмотров. При этом я должен вручную удалить файлы в указанной папке.

Также как отключить кэширование просмотров?

  • 3
    «Сверхурочно, они съедают мое пространство». Навряд ли. Большое приложение Laravel, которое я поддерживаю, имеет около 300 КБ кэшированных представлений для около 500 маршрутов. Вы никогда не закончите из-за кэшированных представлений на любом современном сервере.
  • 3
    Но проблема в том, что мой хостинг-провайдер не ограничивает использование дискового пространства. Вместо этого он ограничивается количеством файлов, которые у вас есть. Так что это проблема для меня.
Показать ещё 5 комментариев
Теги:
caching
laravel-5
artisan

5 ответов

209
Лучший ответ

Теперь для этой задачи существует команда php artisan view:clear, так как Laravel 5.1

  • 0
    Приятно знать, что. Одна вещь, которую я заметил, со временем, кэш под папкой представлений удаляется. Есть ли в коде что-то, что удаляет их через xx дней?
  • 0
    Я считаю, что это было немного дольше, чем это :)
17

Чтобы получить всю команду ремесленника, введите...

php artisan

Если вы хотите очистить кеш представления, просто используйте:

php artisan view:clear

Если вы не знаете, как использовать конкретную команду ремесленника, просто добавьте "помощь" (см. Ниже)

php artisan help view:clear
  • 0
    Это на самом деле было очень полезно, почему это понизили?
  • 0
    Спасибо @Krabats ценю это. «Научите ловить рыбу, а не просто давать рыбу». Но некоторые люди не имеют такого мышления ^ _ ~
6

Прямо сейчас нет представления: очистить команду. Для laravel 4 это может вам помочь: https://gist.github.com/cjonstrup/8228165

Отключение кэширования может быть выполнено с помощью пропущенного клинка. Просмотр кэширования выполняется, поскольку компиляция клинов каждый раз является пустой тратой времени.

  • 0
    Просто на голову, эта команда разработана для Laravel 4.
  • 0
    Я получил хорошее объяснение этого здесь stackoverflow.com/questions/31455829/…
5

Чтобы ответить на ваш дополнительный вопрос, как отключить кеширование просмотров:

Вы можете сделать это, автоматически удалив файлы в папке для каждого запроса командой php artisan view:clear, упомянутой DilipGurung. Ниже приведен пример класса Middleware из https://stackoverflow.com/questions/38595940/delete-laravels-storage-views-files-on-each-reload

<?php
namespace App\Http\Middleware;

use Artisan;
use Closure;

class ClearViewCache
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (env('APP_DEBUG') || env('APP_ENV') === 'local') 
            Artisan::call('view:clear');

        return $next($request);
    }
}

Однако вы можете заметить, что Larevel будет перекомпилировать файлы в папке /app/storage/views всякий раз, когда время в файлах представлений раньше времени на файлах blade-серверов PHP для макета. Я не могу думать о сценарии, где это необходимо сделать.

3

пожалуйста, попробуйте следующую команду:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

Надеюсь, это сработает для вас.

  • 0
    Создатель уверен, что если вы используете artisan config:cache .env что все ваши переменные .env доступны через config() , а не env() иначе они будут нулевыми.
  • 0
    @FlashJordan Я хотел бы прочитать ваш комментарий перед запуском config: cache. лол. Для всех, кто запускает config: cache так же слепо, как я, просто удалите config.php из bootstrap / cache.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню