Laravel 视图缓存是如何工作的?

Posted

技术标签:

【中文标题】Laravel 视图缓存是如何工作的?【英文标题】:How does Laravel Views Cache works? 【发布时间】:2017-01-05 16:42:11 【问题描述】:

根据 Laravel 的文档 (https://laravel.com/docs/5.3/blade#introduction),视图被编译成普通的 php 代码并被缓存,直到它们被修改,但什么时候重新编译?

我的项目在生产环境中,当我部署更改时会自动显示,我不需要清除视图缓存或类似的东西。

视图是否会自动重新编译(在这种情况下,什么时候发生?)还是我没有启用缓存?

【问题讨论】:

【参考方案1】:

默认所有视图都是compiled/cached。您可以在app/config/view.php 中定义存储编译版本的路径。当 Laravel 框架尝试编译视图时,它会检查源视图文件的修改日期和编译版本(如果最后一个存在)。如果编译后的文件比源文件旧,Laravel 会重新编译视图并将其存储为源文件的新缓存版本。每次部署新版本的代码时都会发生这种情况。

【讨论】:

你知道这个日期比较的确切位置(文件和行)吗? 我猜这里是 \Illuminate\View\Compilers\Compiler::isExpired @Alan 缓存视图文件后......视图资源不再使用(在生产中)? 你知道方法\Illuminate\View\Compilers\Compiler::isExpired什么时候调用吗?

以上是关于Laravel 视图缓存是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 视图显示在一台服务器上的缓存中,但在另一台服务器上工作正常

如何禁用 Laravel 视图缓存?

php laravel框架学习笔记 基本工作原理

我想自学laraver,请诸位前辈给一些建议,谢谢

如何在子目录 Laravel 中正确配置 htaccess?

未找到 InvalidArgumentException 视图 [layouts.app]。 Laravel-8 LiveWire-2