我的一个观点有一个异常(exception)。然而,laravel 没有告诉我 View 的名称以便我可以找到它并修复它,而是说它在 app/storage/views/110a3ecc0aa5ab7e6f7f50ef35a67a8b
中。 ,这是没有意义的。
如何禁用此 View 缓存,以便 laravel 使用并引用实际文件?
最佳答案
盒子外面?你不能。但是您可以扩展 BladeCompiler 类,覆盖用于检查 View 是否已过期的方法:
class MyBladeCompiler extends BladeCompiler {
public function isExpired($path)
{
if ( ! \Config::get('view.cache'))
{
return true;
}
return parent::isExpired($path);
}
}
你需要用你自己的编译器替换 IoC 容器中的 BladeCompiler 实例:
$app = App::make('app'); // or just $app = app();
$app->bindShared('blade.compiler', function($app)
{
$cache = $app['path.storage'].'/views';
return new MyBladeCompiler($app['files'], $cache);
});
然后你只需要在你的 app/config/view.php 文件中创建那个键
<?php
return [
'cache' => false,
'paths' => [base_path().'/resources/views'],
'pagination' => 'pagination::slider-3',
];
或者,就像我在这里做的那样:
return [
'cache' => in_array(App::environment(), ['production', 'staging']),
];
关于caching - 如何禁用 Laravel View 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25813251/