我在Angular.js中使用html5模式关闭了我的#并使用grunt和node作为开发服务器,但重新加载和刷新回来为404。
如何在Grunt中启用节点服务器来执行页面重新加载?
答案 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是对真实文件的请求?您必须为此配置服务器,并且您经常需要重新构建应用程序。