在IIS中配置Angular应用从指定基础URL提供服务
将Angular应用从子路径改为IIS根路径访问的配置步骤
一、调整Angular应用的基础路径与构建输出
- 打开项目的
src/index.html,把<base href="/client/v3/">修改为<base href="/">,确保Angular的资源和路由都以根路径为基准 - 使用Angular CLI重新构建应用:运行
ng build --prod --base-href /(开发环境可省略--prod参数) - 将构建生成的
dist文件夹内的所有文件,复制到IIS站点的根目录(即mainSite目录,替换或覆盖原根目录下的内容,注意备份重要文件)
二、配置IIS URL重写规则(解决单页应用刷新404问题)
Angular是单页应用,直接刷新非根路径会返回404,需要通过URL重写将所有非文件/目录请求导向index.html:
- 确认IIS已安装URL重写模块(未安装的话,通过IIS管理器的「Web平台安装程序」搜索安装)
- 在IIS站点根目录创建或编辑
web.config文件,写入以下配置:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Angular Routes" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="/index.html" /> </rule> </rules> </rewrite> <!-- 可选:配置静态资源长期缓存,优化加载速度 --> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" /> </staticContent> </system.webServer> </configuration>
- 保存文件后,重启IIS站点使配置生效
三、清理旧部署目录(可选)
如果mainSite/client/v3下的旧应用文件不再需要,可删除该目录,避免资源混淆
四、验证配置效果
直接访问https://mainSite,检查首页加载是否正常;测试路由跳转、页面刷新操作,确保没有404错误或资源加载失败的情况
内容的提问来源于stack exchange,提问作者Tal Dayan
相关产品推荐
相关产品推荐

