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

Laravel mix函数使用问题:部署到托管平台后无法生成资源版本号

问题原因与解决方案

Laravel的mix()方法找不到mix-manifest.json文件时会直接返回原始资源路径,不会拼接版本号参数,你可以按以下步骤逐一排查:

  • 确认mix-manifest.json部署路径正确
    执行npm run production打包资源后,生成的mix-manifest.json必须上传到托管平台的站点根目录(即public目录),不能放在项目根目录,也不能漏传。
  • 修正自定义public路径配置
    如果你的托管平台要求将静态资源放到public_html等非默认public目录,需要在webpack.mix.js中显式指定公共路径,示例配置:
mix.setPublicPath('public_html')
  .js('resources/js/app.js', 'js')
  .postCss('resources/css/app.css', 'css', [])
  .version();

修改后重新执行打包命令,再将新生成的静态资源和mix-manifest.json上传到托管平台对应目录即可。

  • 检查文件读取权限
    确保托管平台上mix-manifest.json的文件权限设置为644,保证Laravel运行进程有读取该文件的权限,权限不足也会导致版本号无法生成。
  • 校验资源路径配置
    如果你的托管平台配置了CDN或者自定义静态资源域名,检查.env文件中的ASSET_URL参数是否和实际资源访问路径一致,路径不匹配会导致mix()方法无法定位到manifest文件。

现象参考

  • 本地正常运行效果:
    本地环境运行效果
  • 托管平台异常运行效果:
    托管平台运行效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:24:03