AngularJs去掉链接中的“#”

本文介绍如何在AngularJS项目中使用html5Mode去除URL中的#号,并通过配置WebServer解决404问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    angularjs的路由机制会给链接中添加一个“#”,是跳到子页面的锚点。由于项目需求,需要将链接中的“#”去掉,其实angular还提供了html5Mode()跳转机制。

1、在angular.module.config文件中注入“$locationProvider”

angular.module("app",["ui.router"])
    .config(function($locationProvider){
        $locationProvider.html5Mode(true);
    })

2、在index.html的head内加入base标签设置href

<head>
    <base href="/"><base>
</head>

其实前两步的设置已经可以实现去掉“#”跳转了,但是每次刷新或者直接输链接进到页面都会报找不到页面的错


这是由于WebServer的没有各个子页面的路由,所以报找不到的错误,让WebServer把属于AngularJS管理的路由URL,都发转到ng-app就可以解决404的问题了

3、设置WebServer配置

     一般情况下,现在很多前端的编译器都自带webserver,很多前端小伙伴都没有自己搭过webserver,所以多说一点修改webserver的配置问题。

a. nginx下载安装

nginx官方网站下载,下载好只好解压到任意位置,比如桌面的nginx文件夹中,直接cmd

cd C:\Users\admin\Desktop\nginx
进入解压的文件夹下

start nginx
打开浏览器输入localhost直接到nginx欢迎界面,说明webserver已经启动

b.接下来就是把自己的项目添加到服务器下

其实很简单,把自己项目放到nginx文件加下的html里,index.html覆盖原来的index.html就好。

c.修改 nginx 配置为 webserver 路径配置

打开nginx.conf,在http{}下第一个server的location / {} 下的index替换掉,替换为

location / {
            root   html;
            try_files $uri $uri/ /index.html =404;
        }
然后重新加载服务

nginx -s reload
浏览器刷新不会再出现找不到页面的问题了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值