我应该如何构建我的AngularJS路由来处理URL重写和页面刷新?

时间:2014-12-03 15:59:39

标签: javascript angularjs url-rewriting

我正在使用AngularJS构建自己的网站。我希望我的网站导航能够在没有"浏览器闪存的情况下运行。在页面之间存在,例如点击index.html上的链接,转到foo.html。我还想要干净的网址,例如我可以转到mysite.com/foo并让浏览器在foo.html中显示内容。

Angular在HTML5模式下的客户端路由是一种有效的解决方案,但也有例外:

如果我转到mysite.com,我可以配置$routeProvider将视图映射到相应的部分(例如index.htmlfoo.html)并修改浏览器显示的网址。但是,如果我通过直接在浏览器中输入该网址转到mysite.com/foo,我会收到404错误,因为服务器正在查找mysite.com/foo/中没有的内容。如果我在Angular指向mysite.com/foo时刷新页面,则会发生同样的情况。

简而言之,只有在Angular应用程序中导航时才能正确处理导航到mysite.com/foo

我如何处理这个问题,以便我的网站按照我想要的方式行事?在404时,我是否使用PHP和/或mod_rewrite将浏览器重定向回mysite.com

从本质上讲,我希望网址mysite.com/foo显示mysite.com视图+ foo.html部分,无论网址是由Angular设置还是在浏览器网址栏中手动输入

1 个答案:

答案 0 :(得分:1)

是的,你需要像mod_rewrite这样的东西。

http://ericduran.io/2013/05/31/angular-html5Mode-with-yeoman/