You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Deployer Laravel Recipe部署时Blade模板缓存异常问题

Deployer + Laravel: 部署后仍使用旧版本Blade模板的解决方案

看起来你遇到的问题是Deployer部署Laravel后,视图缓存没有正确更新,导致系统一直指向第一个release的模板文件。这个问题的核心原因是Laravel编译后的视图缓存文件里硬编码了旧release的绝对路径,而Deployer默认共享的storage和bootstrap/cache目录会保留这些旧缓存文件。

下面是一步步的解决方案和排查思路:

先确认问题根源

登录到你的服务器,进入项目的共享storage/framework/views目录,随便打开一个编译后的.php文件,你会看到类似这样的开头:

<?php /** PATH /var/www/your-project/releases/1/resources/views/home.blade.php ENDPATH **/ ?>

如果路径里是releases/1而不是最新的release编号,那就能确定是旧缓存文件在搞鬼。

解决方案1:在Deployer流程中自动清理视图缓存

修改你的deploy.php,添加自定义任务,确保每次部署后清理旧的视图缓存,让新release重新编译模板:

// 定义清理视图缓存的任务
task('laravel:view:clear', function () {
    run('{{bin/php}} {{release_path}}/artisan view:clear');
});

// 在新release激活为current后执行这个任务
after('deploy:symlink', 'laravel:view:clear');

如果你之前使用过artisan view:cache来预编译视图(这个命令会生成bootstrap/cache/views.php文件),那还要添加重新缓存的任务:

task('laravel:view:cache', function () {
    run('{{bin/php}} {{release_path}}/artisan view:cache');
});

after('deploy:symlink', 'laravel:view:cache');

这样每次部署完成后,都会自动清理旧缓存并生成新的、指向当前release的视图缓存文件。

解决方案2:调整共享目录配置(可选)

Deployer的Laravel Recipe默认会共享bootstrap/cache目录,如果你不需要共享这个目录(比如每次部署都愿意重新生成配置、路由缓存),可以修改shared_dirs配置,移除它:

set('shared_dirs', [
    'storage',
    // 移除 'bootstrap/cache',让每个release有自己的缓存目录
]);

同时,你可以添加一个任务来自动生成所有缓存:

task('laravel:setup-cache', function () {
    run('{{bin/php}} {{release_path}}/artisan config:cache');
    run('{{bin/php}} {{release_path}}/artisan route:cache');
    run('{{bin/php}} {{release_path}}/artisan view:cache');
});

after('deploy:vendors', 'laravel:setup-cache');

临时应急方案:手动清理服务器缓存

如果上面的配置还没生效,你可以先手动清理服务器上的旧缓存,立刻让应用加载新模板:

  1. 登录服务器,进入项目的current目录(这个是指向最新release的软链接)
  2. 运行php artisan view:clear
  3. 如果之前用过view:cache,再运行php artisan view:cache
  4. (可选)直接删除storage/framework/views下的所有文件,以及bootstrap/cache/views.php文件

这样就能立刻解决当前的问题,之后再配置Deployer任务防止下次复发。

内容的提问来源于stack exchange,提问作者KavonSakul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:58:27