我的应用程序包含一个大的图像文件夹结构。在生产中,图像由 CDN 提供。在开发中,我们在开发服务器上有一小部分可用的图像。
我熟悉使用url_for
从 /static 文件夹中提供文件:
<img src="{{ url_for('static', filename='images/logo.png') }}"/>
我只想将 /static 文件夹用于应用程序相关的东西(如 js、css 和图像,如徽标和按钮图标——模板附带的东西)
该应用程序的主要数据是一个巨大的图像存储库。那是在 CDN 上,而不是在源代码中。
我想这样做:
<img src="{{ url_for('image_repo', filename=viewmodel.imagename) }}"/>
并将其转化为:
发展:
http://devbox/folder/images/blahblah.png
生产:
http://cdn.domain.com/bucket/blahblah.png
Flask 文档讨论了创建端点函数。我做的不对,因为它抛出了一个错误。错误不在此端点函数上,而是在 url_for 上。它说“werkzeug.routing.BuildError”并告诉我:BuildError: ('image_repo', {'filename': u'blahblah.png'}, None)
这是我的端点功能。我知道这是错的。
@app.endpoint('image_repo')
def image_repo(filename):
# use settings to figure out if this is dev or prod
# then what ????
pass