Laravel 5 Clear Views 캐시


168

Laravel 캐시보기가 ~/storage/framework/views.시간 이 지남에 저장되어 내 공간 을 차지한다는 것을 알았 습니다. 어떻게 삭제합니까? 할 수있는 명령이 있습니까? 시도 php artisan cache:clear,했지만 뷰 캐시를 지우지 않습니다. 이를 통해 해당 폴더의 파일을 수동으로 삭제해야합니다.

또한 뷰 캐싱을 비활성화하려면 어떻게합니까?


3
"시간이 지남에 그들은 내 공간을 먹습니다." 있을 것 같지 않게. 내가 관리하는 대형 라 라벨 앱에는 약 500 개의 경로에 대해 약 300KB의 캐시 된 뷰가 있습니다. 최신 서버의 캐시 된 뷰로 인해 결코 소진되지 않습니다.
ceejayoz

3
그러나 문제는 호스팅 제공 업체가 디스크 공간 사용으로 제한하지 않는다는 것입니다. 대신, 가지고있는 파일 수에 의해 제한됩니다. 그래서 그것은 나에게 문제입니다.
basagabi

5
기괴하고 몇 백 개의 파일 storage/framework/views은 수천 개의 파일 옆에 아무것도 없습니다 vendor. 그런 터무니없는 한계가없는 호스트를 확보하십시오. 파일 수로 제한합니까? WTF ?!
ceejayoz

이를위한 훌륭한 호스팅을 추천 해 주시겠습니까? 바람직하게는 공유 호스팅. 현재 호스팅 제공 업체의 이름을 공유 할 수 있는지 잘 모르겠습니다. 그래도 큰 회사입니다.
basagabi

1
너무 기술적이지 않으면 Heroku와 같은 곳으로 가고, 그렇지 않으면 Amazon Web Services와 함께 갈 것입니다. 현재 호스트가 실제로 사용 된 총 공간이 아닌 파일 수를 제한하는 경우 미쳤습니다.
ceejayoz

답변:


278

php artisan view:clearLaravel 5.1 이후로이 작업에 대한 명령이 있습니다.


를 알아서 좋다. 시간이 지남에 따라 views 폴더 아래의 캐시가 삭제됩니다. xx 일 안에 코드를 삭제하는 코드가 있습니까?
basagabi

나는 그것이 그것보다 조금 더 길
었다고

29

모든 장인 명령을 얻으려면 다음을 입력하십시오.

php artisan

보기 캐시를 지우려면 다음을 사용하십시오.

php artisan view:clear

특정 장인 명령을 사용하는 방법을 모르는 경우 "help"를 추가하십시오 (아래 참조).

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 : cache를 실행하기 전에 귀하의 의견을 읽고 싶습니다. lol. 내가 맹목적으로 config : cache를 실행하는 다른 사람은 bootstrap / cache에서 config.php를 삭제하십시오.
Tarek Adam


6

뷰 캐싱을 비활성화하는 방법에 대한 추가 질문에 대답하려면 다음을 수행하십시오.

php artisan view:clearDilipGurung에서 언급 한 명령을 사용하여 각 요청에 대한 폴더의 파일을 자동으로 삭제하면됩니다 . 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 블레이드 파일의 레이아웃보다 시간이 빠를 때마다 / app / storage / views 폴더의 파일을 다시 컴파일합니다. 나는 이것이 실제로 필요한 시나리오를 생각할 수 없다.


2

라 라벨의 캐시 지우기 (터미널)

애플리케이션 캐시 지우기

php artisan cache:clear

라우트 캐시 지우기

php artisan route:clear

구성 캐시 지우기

php artisan config:clear 

컴파일 된 뷰 파일 지우기

php artisan view:clear 

브라우저에서 캐시 지우기 대부분의 공유 호스팅 공급자는 시스템에 대한 SSH 액세스를 제공하지 않습니다. 이 경우 브라우저에서 URL을 호출하여 Laravel 캐시를 지울 수 있습니다. 아래 코드를 route / web.php에 간단히 넣을 수 있습니다.

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

리소스 링크는 https://tecadmin.net/clear-cache-laravel-5/입니다.


1

터미널에서 아래 명령을 사용하십시오.

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

내 네임 스페이스를 업데이트했습니다. 아무것도하지 않고 지금 당신을 위해 일해야합니다. console / commands 폴더에 설정되어 있는지 확인하십시오.
lzoesch
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.