2015-03-19 2 views
83

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

Также, как отключить кеширование представлений?

+2

«Сверхурочные, они могут съесть мое пространство». Вряд ли. Большое приложение Laravel, которое я поддерживаю, имеет около 300 Кбайт кэшированных просмотров примерно для 500 маршрутов. Вы никогда не закончите из-за кэшированных представлений на любом современном сервере. – ceejayoz

+2

Но проблема в том, что мой хостинг-провайдер не ограничивает использование дискового пространства. Вместо этого он ограничивает количество файлов, которые у вас есть. Так что это проблема для меня. – basagabi

+4

Это странно, и ваши сотни сотен файлов в 'storage/framework/views' ничего не стоят рядом с тысячами файлов в' vendor'. Получите хост, у которого нет абсурдных безумных ограничений. Ограничение по количеству файлов? WTF ?! – ceejayoz

ответ

6

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

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

+0

Просто голова, эта команда разработана для Laravel 4. – user3158900

+0

У меня есть хорошее объяснение здесь. Http://stackoverflow.com/questions/31455829/laravel-5-clear-cache-in-shared-hosting-server –

152

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

+0

Приятно это знать. Одна вещь, которую я замечаю, со временем, кеш в папке представлений удаляется. Есть ли что-то в коде, который удаляет их в xx-дни? – basagabi

+0

Я считаю, что это было немного дольше, чем это :) – Oddman

+0

Спасибо за хедз-ап –

4

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

php artisan 

Разве не подсказки, как использовать конкретную команду мастеровых? Просто добавьте «помощь» (см ниже)

php artisan help view:clear 
+0

Это на самом деле было очень полезно, почему он занижен? – Krabats

+0

Спасибо @Krabats ценят это. «Научите, как ловить рыбу, а не просто рыбу». Но некоторые люди не имеют такого мышления^_ ~ –

2

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

Вы можете сделать это автоматически удалять файлы в папке для каждого запроса с помощью команды php artisan view:clear указан DilipGurung. Вот пример Middleware класс от https://stackoverflow.com/a/38598434/2311074

<?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 будет перекомпилировать файлы в папке/приложение/хранение/просмотры всякий раз, когда время на файлы просмотров раньше, чем время на PHP клинка файлы для макета. Я не могу думать о сценарии, где это нужно делать.