AngularJS 路由没有烦人的 Hashbang (#)
在 AngularJS 中,路由允许您为应用程序定义不同的状态和视图。当使用 $routeProvider 声明路由规则时,您可能会注意到浏览器中的 URL 包含井号 (#)。例如,导航到“测试”页面可能看起来像“app/#/test”而不是“app/test”。
为什么要使用哈希?
AngularJS 对非 HTML5 浏览器使用哈希符号来阻止对服务器的 HTTP 调用。如果没有哈希值,较旧的浏览器会向指定 href 的服务器发送请求,这对于客户端导航来说是不需要的。
避免 Hashbang
避免hashbang,您可以使用 $locationProvider.html5Mode(true) 方法告诉 AngularJS 使用 HTML5 历史记录 API(如果可用)。此 API 提供更好的 URL 处理,并允许您使用更干净的 URL,无需哈希。
支持的浏览器
大多数现代浏览器都支持 HTML5 历史记录 API。以下是支持的浏览器列表:
示例
要在 AngularJS 应用程序中启用 HTML5 模式,只需将以下代码添加到您的配置中:
app.config(function($locationProvider) { $locationProvider.html5Mode(true); });
一次当您启用 HTML5 模式时,您会注意到 hashbang 已从您的 URL 中删除,从而提供了更加用户友好和美观的为您的用户带来愉快的体验。
以上是如何从 AngularJS 路由中删除烦人的 Hashbang (#)?的详细内容。更多信息请关注PHP中文网其他相关文章!