Angularjs 主页和URL的路由';s代表网站

Angularjs 主页和URL的路由';s代表网站,angularjs,url-routing,ionic-framework,Angularjs,Url Routing,Ionic Framework,我正在用多个html文件创建一个网站,这些文件通过ionic框架链接在一起,并使用AngularJS在各州之间传输。我想知道#在a href中是什么意思,以及它在状态转移中扮演什么角色。如果我在像这样的文本上有一个href <a href="#/app/page2">hi</a> 但是它不起作用首先,url中的#是什么意思 任何包含#字符的URL都是片段URL。部分 #左边的URL标识了可以访问的资源 由浏览器和右侧部分下载,称为 片段标识符,指定资源中的位置 请在此处

我正在用多个html文件创建一个网站,这些文件通过ionic框架链接在一起,并使用AngularJS在各州之间传输。我想知道#在a href中是什么意思,以及它在状态转移中扮演什么角色。如果我在像这样的文本上有一个href

<a href="#/app/page2">hi</a>
但是它不起作用

首先,url中的
#
是什么意思

任何包含#字符的URL都是片段URL。部分 #左边的URL标识了可以访问的资源 由浏览器和右侧部分下载,称为 片段标识符,指定资源中的位置

请在此处阅读更多->

换句话说,
#
之后的部分可以“服务”,而无需发出整个http请求。事实上,
#
之后的部分从来不会在任何http请求中发送

默认情况下,angularjs使用URL中的
#
。这意味着angular router仅在URL具有#时才会获取URL。然后在控制器中,您可以捕获请求并使用ajax获取所需的数据

http://example.com/#/about
http://example.com/#/contact
您可以通过启用
HTML5模式
来禁用它,您可以在路由器配置中执行此操作:

$locationProvider.html5Mode(true); 
所以你们的URL应该是这样的,角度路由器应该可以正常工作

http://example.com/about
http://example.com/contact

我建议不要使用#URL,这有点旧了。我的选择是使用普通URL。

我明白了。使用普通URL是什么意思?您建议使用ng click而不是tag吗?@user3226932不,您可以不使用#,只需
href=“/your/url”
。ng click是关于点击处理程序的,而不是URL;在我的配置中,我甚至尝试将index.html头放入其中,但它不起作用,直到不起作用为止。另外,将index.html头放在里面似乎抛出了一个错误,因为它不会加载html页面。@user3226932您可以发布您的路由器代码吗?您使用什么作为后端?
http://example.com/about
http://example.com/contact