Veuillez fournir un chemin de cache valide

J'ai dupliqué une application Laravel et l'ai renommée pour l'utiliser pour une autre application. J'ai supprimé le dossier du fournisseur et exécutez à nouveau les commandes suivantes:

composer self-update

composer-update

npm install

bower install

, j'ai configuré mes itinéraires et tout correctement mais maintenant, quand j'essaie de lancer mon appli dans mon navigateur, j'obtiens les erreurs suivantes:

InvalidArgumentException dans le compilateur.php ligne 36: veuillez fournir un chemin de cache valide.

ErrorException dans le système de fichiers.php ligne 111: file_put_contents(F:wwwexampleappstorageframework/sessions/edf262ee7a2084a923bb967b938f54cb19f6b37d): impossible d'ouvrir le flux: aucun fichier ou répertoire de ce type

Je n'ai jamais eu ce problème auparavant, je ne sais pas ce qui le cause et je ne sais pas comment le réparer, j'ai googlé en ligne pour une solution mais j'en ai trouvé aucune jusqu'à présent.

72
demandé sur user3718908 2016-07-20 17:18:49

5 réponses

Essayez-le:

Créer ces dossiers sous stockage/cadre:

  • sessions
  • views
  • cache

Maintenant son travaillé!

265
répondu Mauricio Wanderley Martins 2016-08-28 06:05:34

, Essayez ceci:

  1. php artisan cache:clear
  2. php artisan config:clear
  3. php artisan view:clear
20
répondu thefallen 2016-07-20 14:42:12

Donc, apparemment, ce qui s'est passé était quand je dupliquais mon projet, le dossier framework dans mon dossier de stockage n'a pas été copié dans le nouveau répertoire, ce qui cause mon erreur.

16
répondu user3718908 2016-07-20 15:44:55

Vous pouvez modifier votre readme.md avec des instructions pour installer votre application laravel dans un autre environnement comme celui-ci:

## Create folders

```
#!terminal

cp .env.example .env && mkdir bootstrap/cache storage storage/framework && cd storage/framework && mkdir sessions views cache

```

## Folder permissions

```
#!terminal

sudo chown :www-data app storage bootstrap -R
sudo chmod 775 app storage bootstrap -R

```

## Install dependencies

```
#!terminal

composer install

```
6
répondu Alex B. Santos 2017-06-07 17:28:39

La cause de cette erreur peut être tracée à partir de Illuminate\View\Compilers\Compiler.php

public function __construct(Filesystem $files, $cachePath)
{
    if (! $cachePath) {
        throw new InvalidArgumentException('Please provide a valid cache path.');
    }

    $this->files = $files;
    $this->cachePath = $cachePath;
}

Le constructeur est appelé par BladeCompiler dans Illuminate\View\ViewServiceProvider

/**
 * Register the Blade engine implementation.
 *
 * @param  \Illuminate\View\Engines\EngineResolver  $resolver
 * @return void
 */
public function registerBladeEngine($resolver)
{
    // The Compiler engine requires an instance of the CompilerInterface, which in
    // this case will be the Blade compiler, so we'll first create the compiler
    // instance to pass into the engine so it can compile the views properly.
    $this->app->singleton('blade.compiler', function () {
        return new BladeCompiler(
            $this->app['files'], $this->app['config']['view.compiled']
        );
    });

    $resolver->register('blade', function () {
        return new CompilerEngine($this->app['blade.compiler']);
    });
}

Donc, en retraçant plus loin, le code suivant:

$this->app['config']['view.compiled']

Se trouve généralement dans votre/config / view.php, Si vous utilisez la structure laravel standard.

<?php
return [
    /*
    |--------------------------------------------------------------------------
    | View Storage Paths
    |--------------------------------------------------------------------------
    |
    | Most templating systems load templates from disk. Here you may specify
    | an array of paths that should be checked for your views. Of course
    | the usual Laravel view path has already been registered for you.
    |
    */
    'paths' => [
        resource_path('views'),
    ],
    /*
    |--------------------------------------------------------------------------
    | Compiled View Path
    |--------------------------------------------------------------------------
    |
    | This option determines where all the compiled Blade templates will be
    | stored for your application. Typically, this is within the storage
    | directory. However, as usual, you are free to change this value.
    |
    */
    'compiled' => realpath(storage_path('framework/views')),
];

La fonction Realpath(...) renvoie false, si le chemin n'existe pas. Ainsi, en invoquant

'Please provide a valid cache path.' error.

Par conséquent, à se débarrasser de cette erreur, ce que vous pouvez faire est de s'assurer que

storage_path('framework/views')

Ou

/storage/framework/views

Existe :)

5
répondu ghabx 2018-05-02 11:46:15