页面没变化主因是缓存未清或未绕过:模板缓存需删runtime/cache/或禁用view.cache;配置缓存需删runtime/config.php并执行php think config:cache+刷新opcache;静态资源缓存则需加版本号或强制硬刷新。

先确认你到底在用哪一层缓存
ThinkPHP 8.0 默认不开启模板缓存,只有当 app_debug = false 且手动执行过 php think cache:clear 或 php think config:cache 后,相关缓存才真正写入 runtime/ 目录。如果你还在开发阶段却开着 APP_DEBUG=true,那所有缓存都会被跳过,所谓“开启”只是假象。
快速验证:在控制器里加一行 dump(config('app.app_debug'));,输出 true 就说明缓存压根没参与;输出 false 再检查 runtime/cache/ 或 runtime/config.php 是否存在且非空。
模板缓存没更新?删 runtime/cache 并关掉 view_cache
模板缓存文件默认存在 runtime/cache/ 下,命名类似 xxx.tpl.php。它不会自动感知 .html 或 .php 模板文件的修改,除非你主动清除或禁用。
- 执行
php think clear:cache—— 清掉全部运行时缓存(含模板) - 或直接删目录:
rm -rf runtime/cache/ - 更彻底的做法:在
config/view.php中设'cache' => false,开发期禁用模板缓存
配置改了但 config() 还是旧值?清 config 缓存 + 刷新 OPcache
改了 .env 或 config/app.php 却没生效,90% 是因为 runtime/config.php 还在用旧快照,而且 PHP 的 OPcache 可能把这个文件也缓存了。
- 先删缓存文件:
rm -f runtime/config.php - 再重建:
php think config:cache(确保app_debug=false且runtime/可写) - 最后重载 PHP-FPM 或 Apache,强制刷新 OPcache(如 Nginx+PHP-FPM 环境,执行
sudo systemctl reload php8.1-fpm)
页面“看起来”没变,其实是浏览器在缓存 CSS/JS
这不是 ThinkPHP 的错,而是浏览器把 /static/css/app.css 当成不变资源永久存着了。哪怕你改了文件内容,URL 没变,它就不重新拉。
- 最简单:按 Ctrl+F5 强制硬刷新(跳过浏览器缓存)
- 长期解法:给静态资源加版本号,比如用
{{ mix('css/app.css') }}(需配 Laravel Mix +.version()) - 或用 PHP 时间戳:
<link rel="stylesheet" href="/static/css/app.css?v=%7B%7B%20filemtime(public_path('static/css/app.css'))%20%7D%7D">
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











