刀片视图不反映变化

问题描述 投票:0回答:13

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

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

我试过以下方法:

  • 重启浏览器
  • 清除浏览器缓存
  • 跑步
    php artisan cache:clear
  • 跑步
    composer dumpautoload
  • 删除 Blade 文件(并出现 view not found 错误)。然后创建一个新的同名 Blade 文件,没有内容并刷新页面。

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

我该如何解决这个问题?

laravel laravel-blade
13个回答
70
投票

为了避免在每次重新加载时解析 Blade 文件,Laravel 缓存了 Blade 处理后的视图。我遇到过一些情况,其中源(查看文件)已更新但缓存文件未“重新加载”。在这些情况下,您需要做的就是删除缓存的视图并重新加载页面。

缓存的视图文件存储在

storage/framework/views
.


56
投票

从终端运行此命令

php artisan view:clear

16
投票

如果您使用 PhpStorm,请取消选中

Preserve files timestamps
部署选项: https://stackoverflow.com/a/42534996/2453148


15
投票
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。

5
投票

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

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

5
投票

您还可以检查

opcache
是否启用,在这种情况下您需要清除您的opcache缓存。


5
投票

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

service php7.2-fpm reload


3
投票

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


0
投票

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


0
投票

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


0
投票

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

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


0
投票

以防万一您尝试了所有方法却没有任何效果。我建议您只需以另一个名称创建一个视图,问题就会得到解决

例子:

welcome.blade.php 

改为

newview.blade.php

复制粘贴代码到新视图

在控制器中只需指向新视图:

return view('newview');

0
投票

我尝试了一切,缓存清除命令和删除存储框架视图文件夹,但没有任何效果。最后,这个命令对我来说非常有用。

php artisan optimize
© www.soinside.com 2019 - 2024. All rights reserved.