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

Laravel 8部署到虚拟主机后提示The Mix manifest does not exist如何解决?

Laravel Jetstream部署后The Mix manifest does not exist报错解决

产生原因

  • 站点根目录映射不符合Laravel部署要求:你当前将虚拟主机站点根目录指向了项目根目录/htdocs,而Laravel默认对外服务根目录为public目录,mix()辅助函数默认会从public目录下查找mix-manifest.json文件,你将该文件放在项目根目录会导致路径匹配失败。
  • 资源输出路径配置不匹配:如果本地编译资源时修改过webpack.mix.js的公共输出路径,但部署后没有同步调整对应配置,也会导致Laravel无法定位到manifest文件。
  • 文件权限不足:mix-manifest.json或其父目录的权限设置错误,导致Laravel服务进程没有读取该文件的权限。

修复方案

方案1:修正站点根目录映射(推荐)

  • 进入虚拟主机控制面板,找到站点根目录配置项,将原有根目录路径/htdocs修改为/htdocs/public,这是Laravel项目的标准部署规则,同时可以避免项目核心配置文件暴露到公网。
  • 将你存放在项目根目录的mix-manifest.json文件移动到public目录下,同时确认对应的js/app.js、css/app.css等静态资源也存放在public目录的对应子目录中。

方案2:虚拟主机不允许修改根目录时的兼容方案

  • 在项目根目录/htdocs下新建.htaccess文件,写入以下重写规则,将所有公网请求转发到public目录处理:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
  • 也可以通过修改配置自定义mix查找路径:打开config/app.php,在配置数组中新增'mix_public_path' => base_path(),即可让Laravel从项目根目录查找manifest文件。

方案3:修复文件权限

  • 将public目录权限设置为755,mix-manifest.json文件权限设置为644,确保服务进程有读取权限。

方案4:重新编译资源修正路径

  • 本地打开项目根目录的webpack.mix.js,添加配置mix.setPublicPath('public')指定公共输出目录,重新运行npm run prod编译资源,将新生成的public目录下的所有资源文件和manifest文件上传到服务器对应目录即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:15:10