使用html5模式重新加载Angular

时间:2015-12-08 03:20:07

标签: angularjs node.js gruntjs

我在Angular.js中使用html5模式关闭了我的#并使用grunt和node作为开发服务器,但重新加载和刷新回来为404。

如何在Grunt中启用节点服务器来执行页面重新加载?

1 个答案:

答案 0 :(得分:1)

假设您的应用程序入口点为http://localhost/app/。您将此页面输入浏览器的地址栏,浏览器发送请求,服务器在其文档根目录中找到文件app / index.html并将其返回。现在,浏览器在该文档中找到一些脚本标记,从服务器请求脚本并执行它们。您的申请正在运作。

在某一时刻,角度路线会跳入并开始操纵浏览器的地址栏。有一次它可能会显示http://localhost/app/shop/order。现在你点击了重装。怎么了?只需从头开始阅读此答案,但使用修改后的URI:

...服务器找到文件app / shop / order / index.html并以404响应。

如果不配置服务器,就无法摆脱哈希标志。来自https://docs.angularjs.org/guide/ $ location:

  

服务器端

     

使用此模式需要在服务器端重写URL,基本上您必须重写所有指向应用程序入口点的链接(例如index.html)。要求<base>标签对于这种情况也很重要,因为它允许Angular区分网址的部分   应用程序库和应用程序应该处理的路径。

服务器应该如何知道/ app / shop / order实际上是对/ app的请求,但/app/app.js或/app/partials/overView.html是对真实文件的请求?您必须为此配置服务器,并且您经常需要重新构建应用程序。