刀片视图未反映更改

Posted

技术标签:

【中文标题】刀片视图未反映更改【英文标题】:Blade view not reflecting changes 【发布时间】:2016-09-26 23:35:06 【问题描述】:

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

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

我尝试了以下方法:

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

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

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

如果您尝试了所有方法但没有任何效果。我建议您简单地以另一个名称创建一个视图,问题将得到解决

例子:

welcome.blade.php 

改成

newview.blade.php

复制并粘贴代码到新视图

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

return view('newview');

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

service php7.2-fpm reload

【讨论】:

【参考方案6】:
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】:

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

【讨论】:

这是给我的。 service php7.0-fpm reload 解决了这个问题。【参考方案8】:

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

【讨论】:

@Michel 请解释更多。只要您在刷新页面后将文件名更改为新名称并恢复为原始名称,它就可以工作。【参考方案9】:

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

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

【讨论】:

【参考方案10】:

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

【讨论】:

这是给我的 - 问题只是在我在项目中途开始使用 PHPStorm 时才开始的,所以我知道它与 laravel 无关!【参考方案11】:

从终端运行此命令

php artisan view:clear

【讨论】:

根据操作要求,它在 5.2 中。在否决这个答案之前,运行 php artisan 并检查自己。 这实际上对我有用。这只是为了确认,该命令确实存在并且它摆脱了我得到的缓存视图。 是的,这为我解决了问题【参考方案12】:

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

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

【讨论】:

这工作..我已经删除了框架下的所有视图。谢谢。 我尝试了同样的方法,但我仍然看到旧视图的缓存版本。 缓存对我来说实际上是空的 我也有类似的情况,但它不仅会影响视图,还会影响控制器。我相信这个问题与测试服务器和我的笔记本电脑之间的时间差异有关。不幸的是,无论我做什么,我都无法解决它:( 作为一个更新,我能够通过将我的开发环境和测试服务器都指向同一时间服务器来解决此问题,因此两者具有完全相同的时间。希望这会有所帮助

以上是关于刀片视图未反映更改的主要内容,如果未能解决你的问题,请参考以下文章

刀片未在视图上显示消息

刀片视图中的laravel未定义变量

CSS文件未在laravel刀片视图中导入

@include 之后刀片未在刀片中显示内容 - Laravel 4.2

尝试在 Laravel 7 中查看不同内容时,刀片视图上的 ErrorException 未定义变量

使用未缓存/未编译的 laravel 刀片模板