laravel - ciclo - Proporcione una ruta de caché válida
laravel clear cache views (7)
Entonces, aparentemente, lo que sucedió fue que cuando estaba duplicando mi proyecto, la carpeta del marco dentro de mi carpeta de almacenamiento no se copió al nuevo directorio, esto causó mi error.
Dupliqué una aplicación laravel que funcionaba y la renombré para usarla en otra aplicación. Eliminé la carpeta del proveedor y ejecuté los siguientes comandos nuevamente:
composer self-update
composer-update
npm install
bower install
Configuré mis rutas y todo correctamente, sin embargo, ahora cuando trato de ejecutar mi aplicación en mi navegador obtengo los siguientes errores:
InvalidArgumentException en Compiler.php línea 36: proporcione una ruta de caché válida.
ErrorException en Filesystem.php línea 111: file_put_contents (F: / www / example / app / storage / framework / sessions / edf262ee7a2084a923bb967b938f54cb19f6b37d): no se pudo abrir la secuencia: No existe tal archivo o directorio
Nunca he tenido este problema antes, no sé qué lo está causando ni sé cómo solucionarlo, busqué en línea una solución, pero hasta ahora no he encontrado ninguna.
Intenta lo siguiente:
cree estas carpetas en almacenamiento / marco:
-
sessions
-
views
-
cache
Ahora debería funcionar
La causa de este error se puede rastrear desde 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;
}
BladeCompiler invoca el constructor en 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'']);
});
}
Entonces, rastreando más allá, el siguiente código:
$this->app[''config''][''view.compiled'']
generalmente se encuentra en su /config/view.php, si usa la estructura laravel estándar.
<?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'')),
];
realpath (...) devuelve falso, si la ruta no existe. Invocando así
''Please provide a valid cache path.'' error.
Por lo tanto, para deshacerse de este error, lo que puede hacer es asegurarse de que
storage_path(''framework/views'')
o
/storage/framework/views
existe :)
Problema de mi lado (mientras se implementaba en localhost): faltaba la carpeta de vistas ... así que si no tiene la carpeta del marco, necesitará agregar carpetas. pero si ya existe una carpeta de marco, asegúrese de que todas las carpetas anteriores es decir 1. caché 2. sesión 3. vistas
existe en su directorio de marco.
Prueba esto:
-
php artisan cache:clear
-
php artisan config:clear
-
php artisan view:clear
Puede editar su readme.md con instrucciones para instalar su aplicación laravel en otro entorno como este:
## 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
```
Resolví este problema agregando esta línea en mi
index.php
:
$app[''config''][''view.compiled''] = "storage/framework/cache";