Blade 视图未反映更改
Blade view not reflecting changes
我正在 Windows 环境中开发一个 Laravel(5.2.29) 项目并在 Chrome 浏览器上测试它。
我使用 atom 文本编辑器对 Blade 文件进行了一些更改,然后刷新我的页面,发现它突然停止反映更改(它正在加载旧的 Blade 文件)。
我试过以下方法:
- 重新启动浏览器
- 正在清除浏览器缓存
- 运行
php artisan cache:clear
- 运行
composer dumpautoload
- 正在删除 Blade 文件(并出现 未找到视图 错误)。然后新建一个Blade同名文件,没有内容,刷新页面。
无论如何,浏览器上显示的代码始终是同一(旧)版本,而不是 Blade 文件的内容。
我该如何解决这个问题?
为了避免在每次重新加载时解析Blade文件,Laravel缓存Blade处理后的视图。我遇到过一些源(查看文件)更新但缓存文件不是 "reloaded" 的情况。在这些情况下,您需要做的就是删除缓存视图并重新加载页面。
缓存的视图文件存储在storage/framework/views
。
运行 来自终端的命令
php artisan view:clear
如果您使用 PHPStorm,请取消选中 Preserve files timestamps
部署选项:
清除缓存并清除缓存的blade个文件:
php artisan cache:clear
php artisan config:clear
php artisan view:clear
或者,如果其他建议的方法不起作用,您可以将文件重命名为不同的名称。刷新它们相应的网页以开始使用新的文件名引用。然后您可以在新页面后将文件重命名回您喜欢的名称以反映它们的更改。
您还可以检查是否启用了 opcache
,在这种情况下您需要清除您的 opcache 缓存。
php artisan cache:clear
php artisan route:cache
php artisan config:clear
php artisan view:clear
rm -rf bootstrap/cache/*/*
- 从您的 Nginx/Apache 服务器的 PHP (fpm) 中删除 Cache/OPcache。
喜欢评论中提到的Can Girls。对我来说,解决方案是重新加载 PHP FPM
service php7.2-fpm reload
我已经清除了所有现金和上传的文件夹,但没有看到任何变化。
因此,如果您已将项目放在 public 主机上并且无法访问控制台,那么请尝试通过 IDE 设置部署(例如,我的是 phpstorm)并将其设置为自动加载模式。然后,您可以通过更改问题中的某些内容 blade 并按 cntrl+s(保存)快捷方式使其工作。
清除缓存对我不起作用,但我只是编辑了文件并再次保存,它起作用了!
None 这些解决方案已经为我解决了这个问题。尝试了所有 php artisan 选项并且 php 代码没有更新。
我找到的唯一解决方案是重新启动其中代码 运行 的 docker 容器。
以防万一您尝试了所有方法却没有任何效果。我建议您只需使用其他名称创建视图即可解决问题
示例:
welcome.blade.php
改为
newview.blade.php
将代码复制并粘贴到新视图
在控制器中只需指向新视图:
return view('newview');
我正在 Windows 环境中开发一个 Laravel(5.2.29) 项目并在 Chrome 浏览器上测试它。
我使用 atom 文本编辑器对 Blade 文件进行了一些更改,然后刷新我的页面,发现它突然停止反映更改(它正在加载旧的 Blade 文件)。
我试过以下方法:
- 重新启动浏览器
- 正在清除浏览器缓存
- 运行
php artisan cache:clear
- 运行
composer dumpautoload
- 正在删除 Blade 文件(并出现 未找到视图 错误)。然后新建一个Blade同名文件,没有内容,刷新页面。
无论如何,浏览器上显示的代码始终是同一(旧)版本,而不是 Blade 文件的内容。
我该如何解决这个问题?
为了避免在每次重新加载时解析Blade文件,Laravel缓存Blade处理后的视图。我遇到过一些源(查看文件)更新但缓存文件不是 "reloaded" 的情况。在这些情况下,您需要做的就是删除缓存视图并重新加载页面。
缓存的视图文件存储在storage/framework/views
。
运行 来自终端的命令
php artisan view:clear
如果您使用 PHPStorm,请取消选中 Preserve files timestamps
部署选项:
清除缓存并清除缓存的blade个文件:
php artisan cache:clear
php artisan config:clear
php artisan view:clear
或者,如果其他建议的方法不起作用,您可以将文件重命名为不同的名称。刷新它们相应的网页以开始使用新的文件名引用。然后您可以在新页面后将文件重命名回您喜欢的名称以反映它们的更改。
您还可以检查是否启用了 opcache
,在这种情况下您需要清除您的 opcache 缓存。
php artisan cache:clear
php artisan route:cache
php artisan config:clear
php artisan view:clear
rm -rf bootstrap/cache/*/*
- 从您的 Nginx/Apache 服务器的 PHP (fpm) 中删除 Cache/OPcache。
喜欢评论中提到的Can Girls。对我来说,解决方案是重新加载 PHP FPM
service php7.2-fpm reload
我已经清除了所有现金和上传的文件夹,但没有看到任何变化。 因此,如果您已将项目放在 public 主机上并且无法访问控制台,那么请尝试通过 IDE 设置部署(例如,我的是 phpstorm)并将其设置为自动加载模式。然后,您可以通过更改问题中的某些内容 blade 并按 cntrl+s(保存)快捷方式使其工作。
清除缓存对我不起作用,但我只是编辑了文件并再次保存,它起作用了!
None 这些解决方案已经为我解决了这个问题。尝试了所有 php artisan 选项并且 php 代码没有更新。
我找到的唯一解决方案是重新启动其中代码 运行 的 docker 容器。
以防万一您尝试了所有方法却没有任何效果。我建议您只需使用其他名称创建视图即可解决问题
示例:
welcome.blade.php
改为
newview.blade.php
将代码复制并粘贴到新视图
在控制器中只需指向新视图:
return view('newview');