所以我的网站并不是 100% 都是“由 AngularJS 提供支持”,其中一些只是简单的静态 HTML,比如登陆页面或面向内容的内容,这是简单的 HTML,原因很明显。
我似乎可以获得正常导航的链接的唯一方法是这样的:
$routeProvider
.when('/plans', {templateUrl: '<%= asset_path('ng/views/start.html') %>'})
# Catch all
.otherwise({ redirectTo: (p,loc) -> window.location = loc })
感觉一切都应该更简单,就像我可以做的那样 .otherwise(false)
并且它会正常导航。 `.when('/something'/, false) 也是如此,但我在文档中没有看到任何表明这是可能的。
有谁知道更好的方法吗?
编辑1:
我发现的一个解决方案是在链接中使用target='_self'
。
另一个显然是设置应用程序的“基本 URL”,如 the docs 中所述。 。然后该基地之外的任何链接都应该正常导航。然而,这似乎并不像概述的那样工作,并且该示例也不符合文档的建议。
最佳答案
只是创建一个链接 external file
如果您使用的是 hashbang url(例如 #/plans),那么您应该已准备就绪,如果您使用的是 html5 历史 api ($locationProvider.html5(true)),那么您需要为您的应用程序命名空间(设置 base[href] ] 正确)并将内容放在该命名空间之外。
相关代码:
另一个解决方案是在该 a
元素上使用 target="_self"
。同样,只有在使用 html5(历史推送状态)时,这才应该是一个问题。
关于AngularJS $routeProvider,回退到默认链接导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469946/