首页 > 解决方案 > 如何从烧瓶服务器中的外部文件夹访问文件?

问题描述

我是烧瓶的新手,对于将外部文件夹中的库包含到 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']set to 的值是多少?在 HTML 模板中应该做些什么来完成这项工作?

标签: pythonhtmlflask

解决方案


一般来说,使用烧瓶提供静态文件只对开发有好处。实际上,在上线时建议以其他方式提供静态文件,例如在您的应用程序前面有一个 Web 服务器并将文件服务委托给它,或者将文件放在文件存储中,如 AWS S3。

关于您的custom_static路线,cdn在这种情况下只是一个 url 前缀(可以是任何东西),然后您可以从模板中处理您的静态资产,例如<img src="/cdn/test.jpg">. (cdn前缀可以提示您这些文件稍后会移动到 CDN,并且在生产中不由烧瓶提供)。

app.config['CUSTOM_STATIC_PATH']应设置为包含自定义静态文件的目录的绝对路径。


推荐阅读