【发布时间】:2015-02-01 06:41:45
【问题描述】:
我正在使用 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 时刷新页面,也会发生同样的情况。
简而言之,导航到mysite.com/foo 只有在从 Angular 应用程序中导航时才能正确处理。
我该如何处理这个问题,以便我的网站按照我想要的方式运行?我是否使用 PHP 和/或 mod_rewrite 在 404 时将浏览器重定向回 mysite.com?
本质上,我希望 URL mysite.com/foo 显示 mysite.com 视图 + foo.html 部分 无论 URL 是由 Angular 设置还是在浏览器 URL 栏中手动输入。
【问题讨论】:
标签: javascript angularjs url-rewriting