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

Laravel Inertia @vite生产环境热重载异常:hot文件触发模式切换问题

Laravel public/hot 文件问题解答

这是正常机制吗?属于Bug吗?

这不属于Bug,是Laravel配套前端构建工具(Mix或Vite)的正常设计。public/hot文件是开发环境热重载功能的标识文件:当它存在时,框架会优先尝试连接开发服务器的热重载URL,并切换到开发模式的资源加载逻辑。

执行npm run build后确实应该进入生产模式,正常情况下构建工具会自动清理hot文件,但如果因为构建中断、工具版本兼容等异常情况导致文件未被删除,就会出现生产环境误触发开发模式逻辑的问题。

自动化处理方案

  • 修改package.json的build命令
    在构建命令后追加删除hot文件的操作,确保构建完成后自动清理:
    • Linux/macOS环境:
      "scripts": {
          "build": "vite build && rm -f public/hot"
      }
      
      (如果用的是Laravel Mix,把vite build换成npm run prod即可)
    • Windows环境:
      "scripts": {
          "build": "vite build && del public\\hot"
      }
      
  • 部署脚本中添加清理步骤
    不管是用CI/CD流水线还是手动部署脚本,在部署完成后执行清理命令:
    • Linux/macOS:rm -f public/hot
    • Windows:del public\hot
  • Laravel服务端自动清理
    在app/Providers/AppServiceProvider.php的boot方法中添加判断,生产环境启动时自动删除hot文件:
    public function boot()
    {
        if (app()->environment('production') && file_exists(public_path('hot'))) {
            unlink(public_path('hot'));
        }
    }
    

关于你遇到的网站异常情况

你碰到的网站显示Laravel默认页面的问题,核心原因就是hot文件残留:生产环境下框架检测到该文件后,尝试加载开发服务器的资源,但生产环境没有运行开发热重载服务,导致资源加载失败,最终 fallback 到默认页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:36:00