angular路由移除#号(跟nginx)

原创 2016年05月30日 23:22:24

刚进公司,公司使用的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;
        }
}

附上公司网站






版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

使用AngularJS构建大型Web网站

AngularJS是由Google创建的一种JS框架,使用它可以扩展应用程序中的HTML词汇,从而在web应用程序中使用HTML声明动态内容。在该团队工作的软件工程师Brian Ford近日撰写了一篇...
  • gchan
  • gchan
  • 2013-03-15 01:51
  • 1814

Angular2+AOt+nginx开启gzip,优化访问速度

在使用angular2开发项目的时候,你会发现ng build出来的包,动不动就几m啊(没有黑angular的意思),那还怎么玩下去啊,对吧。虽然angular2有aot啊,但是优化之后还是很大啊,那...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

轻松使用Nginx搭建web服务器

轻松使用Nginx搭建web服务器

Angular开启html5模式实现去除路由上的#号

1.为什么Angular实现的SPA路由会有#号?    由于是SPA,因此需要使用#号来实现锚点,从而实现不刷新页面 2.什么情况下要去掉#号:   1.当你觉得带有#号的路由很丑的时...

vue2路由移除#号(Apache)

刚回上海,事情挺多的,忙到现在,折腾了一下vue2 vue2移除路由#号基本根据文档来就行了,在路由中设置: mode: 'history', 在开发阶段#就移除了,然后是生产阶段,官方文档也有详...

Angular 2 路由

原文链接:http://blog.csdn.net/huangyezi/article/details/51661483 Angular 2 路由angular2路由是管理angular2应用...

Angular 2 路由

Angular 2 路由 angular2路由是管理angular2应用内部导航的一个重要内容,在angular应用中,很多的组件是通过组合完成一个复杂的应用,不可避免的是我们常会在视图间切换,...
  • lmy_1
  • lmy_1
  • 2017-01-14 10:17
  • 703

Angularjs 中 ui-sref 和 $state.go 如何传递单个多个参数和将对象作为参数

一: 如何传递单个参数首先,要在目标页面定义接受的参数:传参, ui-sref: $state.Go: 接收参数, 在目标页面的controller里注入stateParams,然后"stat...

关于angular路由传值(一个或多个)问题

在ng的页面条转传参数的方法,ui-sref,$state1、Ui-sref:用于html页面进行单页面的跳转;2、$state:用于js代码中跳转。[传递单个参数]对于传递方:传递方:ui-sref...

angular路由

angular路由 路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分。 那么,对于angular而言,它自然也有...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)