Laravel Mix本地运行生成线上URL致脚本无法加载求助
Laravel本地环境mix()生成线上URL问题排查
我将线上Laravel网站下载到本地进行更新,在本地测试环境运行时,发现新增脚本文件的URL并非指向localhost,导致脚本无法加载。明明是本地运行项目,为什么脚本文件路径会是线上地址?
问题现象
- 开发者工具网络标签页显示,通过
mix()生成的脚本请求会重定向到线上网站URL,无法正常加载 - 使用
asset()生成的URL则正常指向http://127.0.0.1:8000/js/homepage2.js,脚本可以正常加载
相关代码
webpack.mix.js
mix.js('resources/js/homepage2.js', 'public/js').version();
Blade模板代码
❌ 无法正常工作,重定向到线上URL:
<script src="{{ mix('js/homepage2.js') }}"></script>
✔️ 可以正常工作,URL符合预期:
<script src="{{ asset('js/homepage2.js') }}"></script>
已尝试的无效操作
- 执行
npm run dev或npm run production重新编译资源,无变化 - 修改
.env文件中的APP_URL为本地地址,无效果
解决方案
- 清除mix缓存文件:删除项目根目录下的
public/mix-manifest.json文件,该文件记录资源哈希映射,可能残留了线上路径配置 - 清除Laravel配置缓存:执行以下命令确保
.env修改生效:php artisan config:clear php artisan cache:clear - 检查webpack.mix.js配置:确认文件中没有手动设置线上资源地址,比如是否存在
mix.setAssetUrl('https://你的线上域名')这类配置,如有则修改为本地地址或直接删除 - 重新编译资源:执行
npm run dev(开发环境)或npm run production(生产环境),编译完成后重启本地服务再测试
内容的提问来源于stack exchange,提问作者ismail
相关产品推荐
相关产品推荐

