Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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
Node.js AngularJs路由在链接中没有标签?_Node.js_Angularjs_Single Page Application_Angularjs Routing - Fatal编程技术网

Node.js AngularJs路由在链接中没有标签?

Node.js AngularJs路由在链接中没有标签?,node.js,angularjs,single-page-application,angularjs-routing,Node.js,Angularjs,Single Page Application,Angularjs Routing,我最近开始学习AngularJs用于web开发,到目前为止我很喜欢它。但是,我不太确定在视图之间进行路由时是否会在链接中添加哈希标记。我主要关心的是谷歌将如何缓存网站上的页面,以及链接是否双向工作,即用户是否可以单击www.sampledomain.com/#/orders/450直接进入订单页面。这是一个合适的方法,还是有一种不用hashtag来路由视图的方法 当我删除hashtag时,重新加载页面并得到404错误。谁能给我一个像样的解释一下发生了什么事。谢谢 用户只需单击带有标签的链接,它就

我最近开始学习AngularJs用于web开发,到目前为止我很喜欢它。但是,我不太确定在视图之间进行路由时是否会在链接中添加哈希标记。我主要关心的是谷歌将如何缓存网站上的页面,以及链接是否双向工作,即用户是否可以单击www.sampledomain.com/#/orders/450直接进入订单页面。这是一个合适的方法,还是有一种不用hashtag来路由视图的方法

当我删除hashtag时,重新加载页面并得到404错误。谁能给我一个像样的解释一下发生了什么事。谢谢

  • 用户只需单击带有标签的链接,它就会直接指向订单页面

  • 当内容不同时,谷歌将带有hashtags的链接视为不同的URL。与angular.js相比,更多的是关于SEO,但这里有一篇关于这方面的文章:


  • 您可能希望将Angular设置为使用HTML5模式

    自由贸易协定: $location service有两种配置模式,用于控制浏览器地址栏中URL的格式:Hashbang模式(默认)和基于使用HTML5历史API的HTML5模式。应用程序在两种模式下使用相同的API,$location服务将与适当的URL段和浏览器API配合使用,以方便浏览器URL更改和历史记录管理

    HTML5模式将在现代浏览器中为您提供“普通”URL,而在旧浏览器上则会返回到散列模式

    HTML5模式url:

    http://foo.com/bar?baz=23#baz
    
    hashbang url:

    http://foo.com/#!/bar?baz=23#baz
    
    当我删除hashtag时,重新加载页面并得到404错误

    这是因为在服务器端代码中,您可能没有处理像“www.sampledomain.com/orders/450”这样的请求


    您可以让服务器端代码通过返回重定向到新URL(“www.sampledomain.com/#/orders/450”)或直接返回正确的HTML来处理此请求。“正确”的解决方案将取决于您的需要。

    您好,谢谢您的回答!我已添加locationProvider代码。当我点击页面上的链接时,它就开始工作了。但是,如果我刷新页面或直接在链接中键入,则会显示“未找到页面”。这是我的shell页面。如果我没有在href和javascript中显式添加/appname,它似乎也会重定向到/locahost。