angular项目去除路由中的#号

1,在app.module.ts中加入:

providers: [
        //{ provide: LocationStrategy, useClass: HashLocationStrategy } // 采用hash路由
        { provide: LocationStrategy, useClass: PathLocationStrategy }, // 采用html5路由
],

2,在index.html文件中加入:
<base href="./">

组件的html文件引用资源可以采用路径形式: assets/.../*.png 或 /assets/.../*.png
组件的css文件引用资源可以采用路径形式:../../assets/.../*.png

如果项目使用h5路由(即去除#),且项目中有用新标签页打开新路由,则index.html要改为绝对路径形式:

<base href="/">,如果布署在其它目录可以写为例:<base href="/dirname/">,否则加载资源可能出现路径错误。

编译命令不加参数: --base-href ./

3,修改服务器配置
    1,如果是静态网页,例nginx:修改nginx.conf,在网站的server->location配置中加入: 
    try_files $uri $uri/ /index.html =404;

    例:
    server {
         set $htdocs /www/deploy/mysite/onbook;
         listen 80;
         server_name onbook.me;
         location / {
            root $htdocs;
            try_files $uri $uri/ /index.html =404;
         }
    }

    
    注意:如果应用布署在子目录,比如/var/www/html/game/,那么配置改为:
    try_files $uri $uri/ /game/index.html =404;

    也可以在server中新加一个location,例:

        location /game {
            try_files $uri $uri/ /game/index.html =404;
         }

   

    配置后reload一下:sudo server nginx reload

    2,如果是动态网站,比如采用nodejs写的服务器,设置当 站内路径(req.path) 不包括 /api 时,都转发到 AngularJS的ng-app(index.html)。
        if(req.path.indexOf('/api')>=0){
            res.send("server text");
        
        }else{ //angular启动页
            res.sendfile('app/index.html');
        }

4,angular vscode常用插件: 

  1. Angular Schematics
  2. Angular Language Service
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值