问题
最近在做一个项目,使用的是angularjs9 和 flask,也是边做边跳坑。
做的项目后期,碰到了个angularjs 和 flask 路由的问题。
因为我是直接ng build生成了dist文件夹,然后使用flask 的send_from_directory 直接把dist 下面的index.html 页面返回给用户。
然后配置了自定义的404处理。
具体代码如下
@main.route('/<path:path>', methods=['GET'])
def static_proxy(path):
return send_from_directory('../dist/student-app', path)
@main.route('/')
def index():
if current_user.is_anonymous:
return redirect('/login')
return send_from_directory('../dist/student-app', 'index.html')
@main.errorhandler(404)
def page_not_found(e):
return redirect("/")
整个应用跑起来好像没什么大问题,但是正如angularjs官方文档所说
我在应用里多导航了几次,再刷新页面的话,就会跑flask的404跳转。
解决方法
在网上搜索了很多,也没找到好的处理方法,然后我觉得是不是可以利用cookies和session之类的来解决?
我的方法大致是,在404处理的时候,利用cookies来保存当前请求的路由,然后再到angular应用里,利用这个cookies来跳转页面。
@app.errorhandler(404)
def page_not_found(e):
res = make_response(redirect("/"))
res.set_cookie('next', request.path)
return res
this.router.navigateByUrl(next);
随便说说
在网上找了很久也没找到解决方法【可能这个问题太low了吧】,这个抛砖引玉,如果有好的方法回应留言回复。