315 votes

Veuillez fournir un chemin d’accès de cache valide

J'ai dupliqué un travail laravel application et l'a renommé à utiliser pour une autre application. J'ai supprimé le vendeur dossier et exécutez les commandes suivantes à nouveau:

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 Compiler.php ligne 36: Veuillez fournir une valide chemin du cache.

ErrorException dans Filesystem.php ligne 111: file_put_contents(F:\www\example\app\storage\framework/sessions/edf262ee7a2084a923bb967b938f54cb19f6b37d): failed to open stream: No such file or directory

Je n'ai jamais eu ce problème avant, je ne sais pas ce qui est à l'origine pas plus que je ne sais comment le résoudre, j'ai googlé en ligne pour une solution, mais n'en ai trouvé aucun à ce jour.

913voto

Essaie :

créer ces dossiers sous stockage/cadre :

  • ``
  • ``
  • ``

Maintenant son travaillé !

63voto

thefallen Points 5099

Essayez ceci :

  1. ``
  2. ``
  3. ``

51voto

ghabx Points 91

La cause de cette erreur peut être retracée à partir 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 en Éclairer\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 remontant plus loin, le code suivant:

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

est généralement situé dans votre /config/view.php si vous utilisez la norme de laravel structure.

<?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 la valeur false, si le chemin n'existe pas. Ainsi, en invoquant

'Please provide a valid cache path.' error.

Donc, pour 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 :)

47voto

user3718908 Points 1850

Donc apparemment ce qui s’est passé lorsque j’étais dupliquer mon projet le dossier framework, à l’intérieur de mon dossier de stockage n’a pas été copié dans le nouveau répertoire, causser mon erreur.

27voto

Alex B. Santos Points 381

Vous pouvez modifier votre readme.md avec les instructions pour installer votre application laravel dans autre environnement comme ceci :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X