Flask下"Uncaught SyntaxError: Unexpected token <",一个有意思的错误 - Flask
错误描述
@auth_blueprint.before_app_requestdef before_request(): if current_user.is_authenticated : pass elif request.path != '/auth/login': return redirect(url_for('auth.login'))
当我添加上述代码时,我发现http://www.test.so/auth/login
的第一行报错,查看后没发现问题。上stackoverflow上有人说是错误的把html当做js解析,例如ajax返回值指定出错
错误排查
后来我在return之前加了一句打印,发现其实不止html文件被重定向了,所有的静态文件都被重定向到http://www.test.so/auth/login
,然后,在原html中,他们被指定为js,css,所以解析自然会报错,将代码做了一下调整,解决问题
@auth_blueprint.before_app_requestdef before_request(): if current_user.is_authenticated : pass elif request.path != '/auth/login' and not re.match('/static/', request.path): return redirect(url_for('auth.login'))