/ 和 /#/ 有什么区别?

What is the difference between / and /#/?

为了学习 AngularJS,我正在做一个小项目。这个项目有两个页面“/”和“/login”。因此,当未通过身份验证时,它重定向到“/login”,如果通过身份验证则重定向到“/”。身份验证过程由 NodeJS 服务器处理并且有效。我在控制器中实现了一个简单的身份验证。

if ((typeof $scope.token === "undefined") || ($scope.token == null))
    $location.path("/login");
else
    $location.path("/");

这段代码,当我未通过身份验证并访问“/”时将我重定向到“/login”,但是当我访问“/#/”时它显示“/”的内容,即使我'我未通过身份验证。

所以我想知道“/”和“/#/”之间是否有区别,为什么会这样?

URLs 和 #<anything> 是浏览器本地的,哈希和它后面的任何内容都不会根据请求发送到服务器,也不会在附加哈希时重新加载页面或变了。它对于可以直接在 URL.

中共享的客户端触发器很有用

在本地,您可以使用 location.hash 访问它的值(但在您的情况下,它只是 "/"

所以区别在于,一个是没有散列的 / URL,而 /#/ 是带有 "/" 散列的 URL因为它的价值。