最近使用 Angular 做项目的时候,通过 ng build 打包后的资源地址都带有 localhost:4200,百思不得其解,以为是打包的问题。
最后在 index.html 的文件中发现有一个 <base> 标签,原来这个标签会在页面的所有链接上添加默认地址。以下是详细说明:
<base>标签为页面上的所有链接规定默认地址或默认目标。通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
使用
<base>标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括<a>、<img>、<link>、<form>标签中的 URL。
注意:添加 <base> 标签之后,对于使用相对路径的接口请求地址也会改变,所以要慎重使用。