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

Laravel+Vue.js部署至AWS EC2后代码更新不生效问题求助

解决Laravel+Vue AWS部署后代码更新不即时生效的问题

这种延迟更新的坑我之前踩过好几次,核心基本都是缓存没清理干净,咱们一步步来解决:

  • 第一步:确认前端资源是否正确构建
    拉取GitHub代码后,别忘了重新编译Vue的资源——如果你的仓库里只存了源码(resources/js里的文件),没存编译后的public/js/app.js,那必须运行:

    npm install # 如果有新依赖的话
    npm run prod # 生产环境用这个,开发环境用npm run dev
    

    确保~/laravel/public/js/app.js是最新编译后的版本。

  • 第二步:清除浏览器缓存
    最简单的测试方法是用强制刷新(Windows/Linux按Ctrl+Shift+R,Mac按Cmd+Shift+R),跳过浏览器本地缓存加载新资源。长期解决的话,给静态资源加版本号:在webpack.mix.js里加上.version():

    mix.js('resources/js/app.js', 'public/js')
       .version();
    

    之后Laravel会自动生成带哈希后缀的app.js?id=xxxx,浏览器会自动识别新文件,不用手动清缓存。

  • 第三步:清除Laravel后端缓存
    运行以下命令清除视图、配置等缓存:

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

    确保Laravel加载的是最新的视图和配置。

  • 第四步:处理PHP OPcache缓存
    如果服务器启用了OPcache(生产环境基本都会开),它会缓存编译后的PHP脚本,导致旧代码还在运行。解决方法:

    1. 临时重启PHP服务(比如用FPM的话):
      sudo systemctl restart php8.1-fpm # 替换成你的PHP版本,比如php7.4-fpm
      
    2. 长期优化:可以在部署脚本里加入重启OPcache的步骤,或者调整php.ini里的OPcache配置(生产环境建议保持opcache.revalidate_freq=60,部署后手动重启一次即可)。
  • 第五步:刷新AWS CDN(如果用了CloudFront)
    如果你的网站用了CloudFront做CDN,CDN会缓存静态资源,需要手动刷新缓存:

    1. 登录AWS控制台,进入CloudFront服务
    2. 找到你的分发,切换到「Invalidations」标签
    3. 点击「Create Invalidation」,输入路径/*(或者特定的/js/app.js),提交即可生效(通常几分钟内完成)
  • 最后检查符号链接
    虽然你说符号链接正常,但可以确认一下链接指向的文件是否是最新的:

    ls -l /var/www/html/laravel
    cat /var/www/html/laravel/js/app.js | head # 看开头内容是否和~/laravel/public/js/app.js一致
    

按照这些步骤操作后,基本就能即时看到更新后的内容了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:49:39