我在使用sailsJS和angularJS在我们的app上配置路由时感到非常沮丧。
问题是,浏览器不知道角度,因此任何像/ login这样的请求都会从sails返回404错误。我需要一个解决方案,以保持风帆路线不受角度影响,
一种解决方案是禁用html5Mode,但我真的不喜欢带有/#/的URL的外观,这对于angular来说是典型的。
我已经对此进行了很多研究,但尚未找到一个好的答案或者可能是一个有效的项目。
我现在想要做什么甚至可能?
答案 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部分和应用程序应该处理的路径。