返回资源文件的时候一定要注意添加对应的Content-Type,负责前端虽然在浏览器调试工具中看到文件确实正常获取,但是会发现返回的对应的Content-Type不对,导致js和css效果都没有。

一个样例来规避这个问题

# flask视图,/post_card/v1/assets/文件名,获取文件名并返回 ,提供资源文件
@app.route("/post_card/v1/assets/<path:path>")
def send_asset(path):
    print(path)
    # 判断文件后缀名自动添加对应的Content-Type
    if path.endswith('.css'):
        return open('./view/post_card/v1/assets/' + path, 'rb').read(), {'Content-Type': 'text/css'}
    elif path.endswith('.js'):
        return open('./view/post_card/v1/assets/' + path, 'rb').read(), {'Content-Type': 'text/javascript'}
    else:
        return open('./view/post_card/v1/assets/' + path, 'rb').read()