Ionic iOS Angular应用相对路径脚本加载失败,绝对路径正常求原因
基础URL配置变动
你的Ionic/Angular应用的base href(基础路径)可能被修改过。之前用相对根路径/bi/assets/js/...能正常加载,是因为当时应用部署的域名和脚本托管域名一致,根路径/指向的就是脚本所在的域名。如果现在应用部署到了其他域名(比如app.xyz123.com),相对路径就会指向app.xyz123.com/bi/...,而非脚本实际所在的www.xyz123.com/bi/...,自然加载失败。iOS WebView路径解析规则变化
iOS系统更新后,WKWebView的路径解析逻辑可能有调整。相对根路径/在WebView里不再默认映射到脚本的托管域名,反而可能指向应用的本地资源目录或者当前应用的域名。尤其是当应用开启了PWA离线缓存、使用Capacitor/Cordova加载本地资源时,根路径的解析优先级会偏移,导致远程脚本的相对路径请求失效。服务器端路由/反向代理配置变更
脚本托管的服务器可能调整了路由规则,或者应用前端的反向代理配置被修改。之前相对路径能正常访问,是因为服务器会把/bi/...的请求转发到正确的脚本地址,现在这个转发规则没了,相对路径请求就会返回404或者无法访问。HTTPS混合内容拦截
如果应用现在是HTTPS部署,之前的相对路径请求可能被WebView自动处理,但服务器配置变动后,相对路径可能被解析成HTTP请求,触发iOS WebView的混合内容拦截策略(禁止HTTPS页面加载HTTP资源),导致脚本加载失败。改用带HTTPS的绝对路径就绕过了这个限制。Ionic构建打包配置修改
最近执行ionic build或ionic cap sync时,可能启用了资源哈希、路径重写类的插件,这些配置会修改静态资源的引用路径,把原本指向远程脚本的相对路径错误地重写成了本地路径或者无效地址,导致加载失败。
内容的提问来源于stack exchange,提问作者Nirmal Kumar

