Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该如何构造AngularJS路由来处理URL重写和页面刷新?_Javascript_Angularjs_Url Rewriting - Fatal编程技术网

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

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

我正在用AngularJS建立自己的网站。我希望我的站点的导航在不使用“浏览器闪存”的情况下正常运行,当您在页面之间切换时,例如单击
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这样的东西