【发布时间】:2014-07-14 08:28:11
【问题描述】:
我知道从 AngularJs 路由 url 中删除“#”的一种可能方法是启用 html5 模式。喜欢:
$locationProvider.html5Mode(true) if window.history && window.history.pushState
这是可行的,但问题是当我点击菜单并切换到正确的页面并刷新它后,它显示模板丢失!我很确定这是因为刷新页面后,视图会自动加载带有 url 而不是 AngularJs 路由 url 的 rails 视图。 有人可以帮我吗?
【问题讨论】:
-
检查您是否在主索引页面上正确设置了基本 href(即
<base href=".">)。Using $location上的官方文档提供了更多信息。 -
@miqid 我知道我应该添加基本 href。从其他帖子中,每个人都说它需要
而不是 '.'。但值得一试。并且 url 变为 myworld.dev/#%2Fmy_favorites%2Fnovels 这意味着它不起作用。 也没有用。 -
当然,
"."只是一个建议,如果最终为您工作,更喜欢/。奇怪的是,路由如何导致您的 URL 具有编码值(即%2F,应该是正斜杠)。 -
@miqid 重点是即使我添加
并启用 html5Mode,它仍然会显示错误 - 缺少模板。我只能使用导航栏来重定向页面。刷新一次,错误又出现了。
标签: ruby-on-rails angularjs location-provider