You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的Angular项目URL为localhost:4200/#/而非localhost:4200/?

Angular URL 带/#/的原因

这是因为你的Angular项目启用了HashLocationStrategy路由策略,而非默认的PathLocationStrategy。

为什么会出现这种情况?

  • 兼容性适配:部分老旧服务器不支持HTML5 History API,无法正确解析非静态资源的URL路径。Hash模式下,服务器仅处理#之前的部分,#之后的路由由Angular客户端自行解析,避免部署后出现路由404问题。
  • 预制仪表盘的默认配置:多数Angular预制模板或仪表盘为了适配更多服务器环境,会默认启用Hash模式,降低部署时的配置成本。

验证当前路由策略

查看项目根模块(通常是app.module.ts)中的路由配置,是否显式设置了useHash: true:

RouterModule.forRoot(routes, { useHash: true })

若要去掉/#/,切换到PathLocationStrategy需注意:

  • 配置服务器支持HTML5路由:比如Nginx需设置try_files $uri $uri/ /index.html;,Apache需启用mod_rewrite并配置规则,让所有路由请求都返回Angular入口文件。
  • 移除路由配置中的useHash: true选项,恢复默认的PathLocationStrategy。

内容的提问来源于stack exchange,提问作者James McCorkindale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:23:13