1.此坑情况

laravel在3D渲染blade模板后,会将3D渲染好的結果存到storage/framework/views(默认设置途径,也可在配备中改动的)中,便于下一次应用。
但我近期一直发觉改动了blade模板,但怎么刷新都還是有主视图缓存。除非是实行 php artisan view:clear 清除缓存。


google 好数次,获得了下列结果: 
1.laravel 的主视图缓存是没法设定到期時间的。
2.laravel的主视图缓存作用是没法关掉的。


如果是那样,那一定就是我的开发工具出了难题。由于现况很显著,居然一直有缓存! 
那麼就刚开始解决困难之途。


2.先说结果
我的开发设计机(用的vmware上的vm虚拟机)的时间格式和当地時间不一样造成 模板文档升级有什么问题。
解决方案:校正开发设计机時间

3.确诊全过程 ----寻找laravel源代码中的解决逻辑性
1) 寻找/vendor/laravel/framework/src/Illuminate/View/Compilers/ViewServiceProvider.php  
第134行 registerBladeEngine  模板模块申请注册方式 发觉在其中会建立 BladeCompiler 
一看姓名就了解是它了  赶快进来看一下。

  填一个laravel视图缓存没有及时更新的坑  Php  第1张

 

2) 进到/vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler .php 寻找父亲类 /vendor/laravel/framework/src/Illuminate/View/Compilers/Compiler.php
看第60行 的 isExpired 方式 

  填一个laravel视图缓存没有及时更新的坑  Php  第2张

 


机敏的发觉,这儿是根据文档的修改时间来分辨是不是要应用缓存的,且逻辑性是 若blade文档的修改时间比缓存文档的時间钟头 才会应用缓存。
因此 ,很可能就是我设备的时间问题。

因此 出現这类状况时要不实行php artisan view:clear指令消除缓存,要不改动设备时间问题