刀片视图不反映变化

Noo*_*der 30 laravel blade

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

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

我尝试过以下方法:

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

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

我该如何解决这个问题?

Luí*_*ruz 38

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

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

  • 我尝试了同样但我仍然看到旧视图的缓存版本. (7认同)
  • 我有类似的情况,但它不仅影响视图,也影响控制器.我认为问题与测试服务器和笔记本电脑之间的时间差异有关.不幸的是,无论我做什么,我都无法解决它:( (2认同)
  • 就像更新一样,我能够通过将我的开发环境和测试服务器指向同一时间服务器来解决这个问题,因此两者都具有完全相同的时间。希望这可以帮助 (2认同)

Bug*_*xer 31

从终端运行此命令

php artisan view:clear
Run Code Online (Sandbox Code Playgroud)


Art*_*ain 11

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


Sig*_*i44 11

php artisan cache:clear
php artisan route:cache
php artisan config:clear
php artisan view:clear
rm -rf bootstrap/cache/*/*
Run Code Online (Sandbox Code Playgroud)
  • 从 Nginx/Apache 服务器的 PHP (fpm) 中删除 Cache/OPcache。


Con*_*ech 6

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

php artisan cache:clear
php artisan config:clear
php artisan view:clear
Run Code Online (Sandbox Code Playgroud)


小智 5

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

  • 这就是我的目的。`service php7.0-fpm reload` 解决了这个问题。 (6认同)

Ham*_*ram 5

就像 Can Gelis 在评论中提到的那样。对我来说,解决方案是重新加载 PHP FPM

service php7.2-fpm reload