升级至Angular 13后无法找到main、runtime等文件的求助
解决方案
- 调整
angular.json的deployUrl配置
Angular 13对资源路径的处理逻辑有微调,原有的root配置可能不再生效。在项目的angular.json中,找到对应项目节点下的architect -> build -> options,添加或修改deployUrl:
"deployUrl": "/tmv/"
同时保留index.html中的<base href="/tmv/">标签,该标签依然是控制路由和资源路径的核心配置,CLI的--base-href参数虽被标记弃用,但页面内的base标签无需改动。
验证配置层级与基础路径
检查angular.json中architect -> build -> options的outputPath是否为默认的dist/[你的项目名],index是否正确指向src/index.html。移除原有的root配置项,避免与新的路径配置冲突。检查Apache代理规则
确保Apache的代理配置正确映射静态资源请求,示例规则如下:
ProxyPass /tmv http://localhost:4200/tmv ProxyPassReverse /tmv http://localhost:4200/tmv
避免Apache对/tmv路径下的静态资源做额外重写,导致js文件的请求路径被错误篡改。
- 用CLI参数快速验证
启动服务时直接指定deploy-url参数,测试是否能正常加载资源:
ng serve --deploy-url /tmv/
若此方式有效,说明angular.json中的配置未正确应用,需检查配置是否在正确的项目节点下(而非根节点)。
- 清除缓存重新构建
执行以下命令清理旧缓存和依赖,避免残留配置干扰:
ng clean rm -rf node_modules package-lock.json npm install ng build --deploy-url /tmv/
完成后重新启动服务测试。
内容的提问来源于stack exchange,提问作者Casper Slynge
相关产品推荐
相关产品推荐

