侞婼冇罪

主业前端,偶尔也写写后端

angular路由移除#号(跟nginx)

刚进公司,公司使用的angular.js(1.3.0),主管跟我说要我移除angular项目访问路径URL里的#号移除(针对百度seo问题后来发现angular天生不适合做seo)。

angularjs框架定义了前端路由控制器,通过不同的url实现单页面(ng-app)对视图ng-view的部署刷新。

默认情况下:angular是不启动html5模式的,url中就会包括一个#号,用来区别angular管理的路径还是webserver管理的路径

angular框架提供了一种html模式的路由,可以直接移除#号

1.在路由里设置$locationProvider.html5Mode(true)

2.在angular页面添加base标签<base href="/">

如果用户是先访问首页,然后再跳转是由angular前端管理的url,是能正常访问的

(如果用户直接访问的不是首页,请求会先被提交到后台,后台路由没有对应页面的路由管理就好出现错误)

3.在nginx中增加try_files配置(在后台设置路由)

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

附上公司网站






阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26744901/article/details/51541935
文章标签: angular nginx 源码
个人分类: web前端 Angular
上一篇web端ios布局fixed元素软键盘唤起时fixed失效
下一篇ios移动输入框被软键盘遮挡
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭