Javascript 我应该如何构造AngularJS路由来处理URL重写和页面刷新?
我正在用AngularJS建立自己的网站。我希望我的站点的导航在不使用“浏览器闪存”的情况下正常运行,当您在页面之间切换时,例如单击Javascript 我应该如何构造AngularJS路由来处理URL重写和页面刷新?,javascript,angularjs,url-rewriting,Javascript,Angularjs,Url Rewriting,我正在用AngularJS建立自己的网站。我希望我的站点的导航在不使用“浏览器闪存”的情况下正常运行,当您在页面之间切换时,例如单击index.html上的链接,该链接会将您带到foo.html。我还需要干净的URL,例如,我可以转到mysite.com/foo,让浏览器在foo.html中显示内容 Angular在HTML5模式下的客户端路由是一个有效的解决方案,但也有例外: 如果我转到mysite.com,我可以配置$routeProvider将视图映射到适当的部分(例如index.html
index.html
上的链接,该链接会将您带到foo.html
。我还需要干净的URL,例如,我可以转到mysite.com/foo
,让浏览器在foo.html
中显示内容
Angular在HTML5模式下的客户端路由是一个有效的解决方案,但也有例外:
如果我转到mysite.com
,我可以配置$routeProvider
将视图映射到适当的部分(例如index.html
或foo.html
),并修改浏览器显示的URL。但是,如果我通过直接在浏览器中键入URL进入mysite.com/foo
,我将得到404错误,因为服务器正在mysite.com/foo/
中查找不存在的内容。如果我在Angular指向mysite.com/foo
时刷新页面,也会发生同样的情况
简而言之,只有从Angular应用程序中导航到mysite.com/foo
时,才能正确处理
我如何处理这个问题,使我的网站按照我想要的方式运行?我是否使用PHP和/或mod_rewrite
在404时将浏览器重定向回mysite.com
本质上,我希望URL
mysite.com/foo
显示mysite.com
视图+foo.html
部分,无论URL是通过角度设置的还是在浏览器URL栏中手动键入的 是的,你需要像mod_rewrite这样的东西