刀片视图不反映变化

时间:2016-05-28 20:50:35

标签: laravel blade

我正在Windows环境中开发一个Laravel(5.2.29)项目,并在Chrome浏览器上进行测试。

我使用原子文本编辑器对Blade文件进行了一些更改,然后刷新了我的页面并注意到它突然停止反映更改(它正在加载旧的Blade文件)。

我尝试了以下内容:

  • 重新启动浏览器
  • 清除浏览器缓存
  • 正在运行php artisan cache:clear
  • 正在运行composer dumpautoload
  • 删除Blade文件(并找到视图未找到错误)。然后创建了一个具有相同名称的新Blade文件,没有内容并刷新页面。

无论如何,浏览器上显示的代码始终是相同的(旧)版本,而不是Blade文件的内容。

我该如何解决这个问题?

11 个答案:

答案 0 :(得分:29)

为了避免在每次重新加载时解析Blade文件,Laravel会在处理Blade之后缓存视图。我经历过一些情况,其中源(视图文件)被更新但是缓存文件没有重新加载"。在这些情况下,您需要做的就是删除缓存的视图并重新加载页面。

缓存的视图文件存储在storage/framework/views

答案 1 :(得分:25)

从终端

运行此命令
php artisan view:clear

答案 2 :(得分:9)

如果您使用PHPStorm,请取消选中Preserve files timestamps部署选项: https://stackoverflow.com/a/42534996/2453148

答案 3 :(得分:3)

您还可以检查是否启用了opcache,在这种情况下,您需要清除opcache缓存。

答案 4 :(得分:2)

清除缓存并清除缓存的刀片文件:

php artisan cache:clear
php artisan config:clear
php artisan view:clear

答案 5 :(得分:2)

或者,如果其他建议的方法不起作用,则可以将文件重命名为其他名称。刷新其相应的网页以开始使用新的文件名引用。然后,您可以在新页面之后将文件重命名为您的首选名称,以反映它们的更改。

答案 6 :(得分:0)

php artisan cache:clear
php artisan route:cache
php artisan config:clear
php artisan view:clear
rm -rf bootstrap/cache/*/*
  • 从Nginx / Apache服务器的PHP(fpm)中删除缓存/ OPcache。

答案 7 :(得分:0)

在评论中提到了像吉利斯(Can Can Gelis)。对我来说,解决方案是重新加载PHP FPM

service php7.2-fpm reload

答案 8 :(得分:0)

我清除了所有现金和上载的文件夹,但没有看到更改。 因此,如果您将项目放置在公共主机上,但无权访问控制台,请尝试通过您的IDE(例如,例如phpstorm)设置部署并将其设置为自动加载模式。然后,您可以通过更改问题刀片中的某些内容并按cntrl + s(save)快捷方式来使其工作。

答案 9 :(得分:0)

清除缓存对我不起作用,但是我只是编辑了文件并再次保存了它,就可以了!

答案 10 :(得分:0)

这些解决方案都没有为我解决这个问题。尝试了所有 php artisan 选项,但 php 代码没有更新。

我发现的唯一解决方案是重新启动代码在其中运行的 docker 容器。