代码段:
app.config
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
$urlRouterProvider
.when('logout', '/logout')
.otherwise('/');
Relevant HTML
<li><a href="/logout">Logout</a></li>
Flask endpoint
@app.route("/logout")
@login_required
def logout():
logout_user()
return redirect(url_for("login"))
我还在HTML的标题中设置了<base href="/"></base>
。但是,点击链接不会导致任何事情发生(字面上没有任何反应)。
是什么给出了?
答案 0 :(得分:1)
因为注销请求永远不会到达您的服务器。您需要创建一个与实际向烧瓶终点发出请求的注销路径相关联的LogoutController。
答案 1 :(得分:0)
通过两次阅读AngularJS文档并在那里找到this little gem来解决这个问题。在这里提供答案,以便帮助其他开始在Flask-Angular中开发的人。
引用:
Html链接重写
使用HTML5历史记录API模式时,您不需要特殊的 hashbang链接。您所要做的就是指定常规URL链接 as:
<a href="/some?foo=bar">link</a>
当用户点击此链接时,
- 在旧版浏览器中,网址更改为
/index.html#!/some?foo=bar
- 在现代浏览器中,网址更改为
/some?foo=bar
如下所示,链接不会被重写;相反, 浏览器将执行整页重新加载到原始链接。
- 包含
target
元素的链接
示例:<a href="/ext/link?a=b" target="_self">link</a>
- 转到其他域的绝对链接 示例:
<a href="http://angularjs.org/">link</a>
- 以'/'开头的链接导致不同的基本路径 示例:
<a href="/not-my-base/link">link</a>
基本上,改变这个:
<li><a href="/logout">Logout</a></li>
到此:
<li><a href="/logout" target="_self">Logout</a></li>
解决了这个问题。