使用SailsJS时从AngularJS中删除主题标签

时间:2014-08-30 22:30:43

标签: angularjs url sails.js angular-ui-router

我在使用sailsJS和angularJS在我们的app上配置路由时感到非常沮丧。

问题是,浏览器不知道角度,因此任何像/ login这样的请求都会从sails返回404错误。我需要一个解决方案,以保持风帆路线不受角度影响,

一种解决方案是禁用html5Mode,但我真的不喜欢带有/#/的URL的外观,这对于angular来说是典型的。

我已经对此进行了很多研究,但尚未找到一个好的答案或者可能是一个有效的项目。

我现在想要做什么甚至可能?

1 个答案:

答案 0 :(得分:0)

如果您正在使用Angular的HTML5模式,那么您需要配置您的Web服务器(在本例中为SailsJS)以使用您的index.html文件来响应对/ login或任意路由的请求。

如果您在Web浏览器中直接导航到http://localhost:3000/login(假设您在localhost:3000上运行Sails),Sails需要回复您的index.html,以便您的Angular应用程序可以自举,然后显示适当的路线。然后,用户在您的应用中点击的后续链接将由Angular路由器直接拦截,而不是直接拦截。

Angular有关于使HTML5模式正常工作的文档here

  

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