我是不熟悉烧瓶的人,对于将外部文件夹中的库包含到html模板中感到非常困惑。我知道如何从static
文件夹中进行添加,但是我想将代码和库文件保存在单独的文件夹中。所以,我的目录结构是这样的:
./main_directory
|
|_./Code
| |_./flask_script.py
| |_./static
|
|_./Libraries
我了解send_from_directory()
函数,但我不完全了解如何使用它。我最常看到的是:
@app.route('/cdn/<path:filename>')
def custom_static(filename):
return send_from_directory(app.config['CUSTOM_STATIC_PATH'], filename)
哪个来自另一个StackOverflow答案。但是在这种情况下,cdn
是什么?另外,app.confg['CUSTOM_STATIC_PATH']
的值设置为什么?为了使这项工作能够在HTML模板中完成?
答案 0 :(得分:1)
通常,使用flask提供静态文件仅对开发有利。实际上,建议在上线时以其他方式提供静态文件,例如,在您的应用程序前面放置一台Web服务器并委派文件服务,或将文件放置在文件存储中,例如AWS S3。
关于您的custom_static
路由,在这种情况下,cdn
只是一个URL前缀(可以是任何前缀),然后您就可以使用<img src="/cdn/test.jpg">
之类的模板来处理静态资产。 (cdn
前缀可以提示您以后这些文件将被移至CDN,而生产中的flask无法提供这些文件。)
app.config['CUSTOM_STATIC_PATH']
应该设置为包含自定义静态文件的目录的绝对路径。