Laravel 5 Clear Cache Views


168

Я помічаю, що перегляди кеш-пам'яті Laravel зберігаються в " ~/storage/framework/views.З часом", вони з'їдають мій простір. Як їх видалити? Чи є якась команда, яка могла б? Я спробував, php artisan cache:clear,але це не очищення кешу поглядів. З цим мені доведеться вручну видалити файли у вказаній папці.

Крім того, як відключити кешування переглядів?


3
"Понаднормово, вони з'їдають мій простір". Навряд чи. У великому додатку Laravel, який я підтримую, є близько 300 КБ кешованих переглядів приблизно на 500 маршрутів. Ви ніколи не закінчитеся через кешовані види на будь-якому сучасному сервері.
ceejayoz

3
Але проблема полягає в тому, що мій провайдер хостингу не обмежує використання дискового простору. Натомість воно обмежує кількість файлів, які у вас є. Тож це питання для мене.
basagabi

5
Це химерно, і ваші пару сотень файлів storage/framework/views- це не що інше, як тисячі файлів vendor. Отримайте хоста, який не має таких безглуздих обмежень. Обмеження за кількістю файлів? WTF ?!
ceejayoz

Чи можете ви порадити чудовий хостинг для цього? Переважно спільний хостинг. Я не впевнений, чи мені дозволяється поділитися іменем мого поточного хостинг-провайдера. Хоча це велика компанія.
basagabi

1
Я б поїхав з кудись, як Heroku, якщо ви не надто технічний, або Amazon Web Services, якщо є. Якщо ваш поточний хост справді обмежує кількість файлів, а не загальний використаний простір, вони божевільні.
ceejayoz

Відповіді:


278

Тепер php artisan view:clearдля цього завдання існує команда з Laravel 5.1


Добре це знати. Одне, що я помічаю, з часом кеш із папки перегляду видаляється. Чи є в коді щось, що видаляє їх за xx днів?
basagabi

Я вважаю, що це було дещо довше, ніж це :)
Оддман,

29

Щоб отримати всю команду ремісників, введіть ...

php artisan

Якщо ви хочете очистити кеш перегляду, просто скористайтеся:

php artisan view:clear

Якщо ви не знаєте, як використовувати певну команду ремісників, просто додайте "довідку" (див. Нижче)

php artisan help view:clear

11

будь ласка, спробуйте цю команду нижче:

sudo php artisan cache:clear

sudo php artisan view:clear

sudo php artisan config:cache

2
Чайник , що якщо ви artisan config:cacheщо все ваші .envзмінні доступні через config(), що не env()або вони будуть нуль.
FlashJordan

1
@FlashJordan Я хотів би прочитати ваш коментар перед запуском config: кеш. Лол. Для всіх, хто працює з config: кеш настільки ж наосліп, як і я, просто видаліть config.php з bootstrap / cache.
Тарек Адам

6

Зараз немає виду: чітка команда. Для Laravel 4 це може вам допомогти: https://gist.github.com/cjonstrup/8228165

Відключити кешування можна, пропустивши лезо. Перегляд кешування виконується, оскільки щомісячне компіляція леза - це марна трата часу.


Я отримав гарне пояснення з цього питання stackoverflow.com/questions/31455829/…
Рінто Джордж

6

Щоб відповісти на ваше додаткове запитання, як відключити кешування переглядів:

Це можна зробити, автоматично видаливши файли в папці для кожного запиту за допомогою команди, 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 буде перекомпілювати файли в папці / app / storage / views щоразу, коли у файлах перегляду буде час, який перевищує час у макетів файлів PHP для макета. Тому я не можу реально придумати сценарій, коли це було б потрібно зробити.


2

Очистити кеш-пам'ять у Ларавелі (термінал)

Очистити кеш програми

php artisan cache:clear

Очистити кеш маршруту

php artisan route:clear

Очистити кеш конфігурації

php artisan config:clear 

Очистити складені файли перегляду

php artisan view:clear 

Очистити кеш у веб-переглядачі Більшість постачальників послуг, що надають спільний хостинг, не забезпечують доступ SSH до систем. У такому випадку ви можете очистити кеш Laravel, зателефонувавши в браузері URL. Ви можете просто розмістити наведений нижче код у своїх маршрутах / web.php.

Route::get('/clear-cache', function() {
    Artisan::call('cache:clear');
    return "Cache is cleared";
});

Ось посилання на ресурс https://tecadmin.net/clear-cache-laravel-5/


1

використовувати команду Below в терміналі

php artisan cache:clear
php artisan route:cache 
php artisan config:cache 
php artisan view:clear

0

Ось помічник, який я написав, щоб вирішити це питання для своїх проектів. Це робить дуже простим і легким можливість легко очистити все з допомогою однієї команди.

https://github.com/Traqza/clear-everything


Погляньте на використаний простір імен. переконайтеся, що його правильний шлях до папки, або якщо ви змінили його. переконайтеся, що ви оновите його відповідно. @samjadps
lzoesch

Я оновив простір імен на своєму кінці. Має працювати зараз на вас, нічого не роблячи. Просто переконайтеся, що його встановлено в папці консолей / команд.
lzoesch
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.