栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在生产中从CDN而非Flask服务静态文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在生产中从CDN而非Flask服务静态文件

无需更改链接到静态文件的方式,仍然可以使用

url_for('static',filename='myfile.txt')
。将默认静态视图替换为重定向到CDN(如果已配置)的视图。

from urllib.parse import urljoin# or for python 2: from urlparse import urljoinfrom flask import redirect@app.endpoint('static')def static(filename):    static_url = app.config.get('STATIC_URL')    if static_url:        return redirect(urljoin(static_url, filename))    return app.send_static_file(filename)

无论您是在开发机器上还是在生产机器上,都将

STATIC_URL
config值设置为CDN,并且对静态文件的请求将在此处重定向。


重定向相对便宜,并且被浏览器记住。如果您发现性能受到它们的显着影响,则可以编写一个在使用CDN时直接链接的函数。

@app.template_global()def static_url(filename):    static_url = app.config.get('STATIC_URL')    if static_url:        return urljoin(static_url, filename)    return url_for('static', filename=filename)

template_global
装饰使得所有可用模板的功能。代替
url_for
需要静态文件的URL时使用它。


可能已经有一个Flask扩展程序可以为您执行此操作。例如,Flask-S3提供了一个服务

url_for
,用于提供来自AWS
S3的静态文件。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/641314.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号