สาเหตุของข้อผิดพลาดนี้สามารถตรวจสอบได้จาก 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 ใน 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']);
});
}
ดังนั้นการสืบค้นกลับเพิ่มเติมรหัสต่อไปนี้:
$this->app['config']['view.compiled']
โดยทั่วไปจะอยู่ใน /config/view.php ของคุณหากคุณใช้โครงสร้าง laravel มาตรฐาน
<?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 (... )ส่งคืนค่า false หากเส้นทางไม่มีอยู่ ดังนั้นจึงกล่าวอ้าง
'Please provide a valid cache path.' error.
ดังนั้นเพื่อกำจัดข้อผิดพลาดนี้สิ่งที่คุณสามารถทำได้คือให้แน่ใจว่า
storage_path('framework/views')
หรือ
/storage/framework/views
มีอยู่ :)