Ruby on rails Angularjs url不使用html5删除哈希

Ruby on rails Angularjs url不使用html5删除哈希,ruby-on-rails,angularjs,location-provider,Ruby On Rails,Angularjs,Location Provider,我知道从AngularJs路由url中删除“#”的一种可能方法是启用html5模式。比如: $locationProvider.html5Mode(true) if window.history && window.history.pushState 这是工作,但问题是,我点击菜单,切换到正确的页面,并刷新它,它显示模板丢失!!我很确定这是因为刷新页面后,视图将自动加载带有url的rails视图,而不是AngularJs路由url。 有人能帮我吗?从 服务器端 使用这种模式需要

我知道从AngularJs路由url中删除“#”的一种可能方法是启用html5模式。比如:

$locationProvider.html5Mode(true) if window.history && window.history.pushState
这是工作,但问题是,我点击菜单,切换到正确的页面,并刷新它,它显示模板丢失!!我很确定这是因为刷新页面后,视图将自动加载带有url的rails视图,而不是AngularJs路由url。 有人能帮我吗?

服务器端
使用这种模式需要在服务器端重写URL,基本上您必须重写所有指向应用程序入口点的链接(例如index.html)

原因是,当您第一次访问页面(/about)时,例如刷新后,浏览器无法知道这不是一个真正的url,因此它会继续并加载它。但是,如果您首先加载了根页面和所有javascript代码,那么当您导航到/about时,您可以在浏览器尝试访问服务器并相应地处理它之前进入该页面


感谢

检查您是否已在主索引页上正确设置了基本href(即
)。上的官方文档提供了有关此的进一步信息。@miqid我知道我应该添加base href。在其他帖子中,每个人都说它需要的是“而不是”。但值得一试。而url变成了,这意味着它不起作用。当然,
只是一个建议,如果最终为你工作,你会选择
/
。奇怪的是,路由是如何导致您的URL具有编码值的(即
%2F
,应该是正斜杠)。@miqid问题是,即使我添加并启用HTML5模式,它仍然会显示一个错误——缺少模板。我只能使用导航栏重定向页面。刷新后,错误再次发生。