python - 如何从烧瓶服务器中的外部文件夹访问文件?
问题描述
我是烧瓶的新手,对于将外部文件夹中的库包含到 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 模板中应该做些什么来完成这项工作?
解决方案
一般来说,使用烧瓶提供静态文件只对开发有好处。实际上,在上线时建议以其他方式提供静态文件,例如在您的应用程序前面有一个 Web 服务器并将文件服务委托给它,或者将文件放在文件存储中,如 AWS S3。
关于您的custom_static
路线,cdn
在这种情况下只是一个 url 前缀(可以是任何东西),然后您可以从模板中处理您的静态资产,例如<img src="/cdn/test.jpg">
. (cdn
前缀可以提示您这些文件稍后会移动到 CDN,并且在生产中不由烧瓶提供)。
app.config['CUSTOM_STATIC_PATH']
应设置为包含自定义静态文件的目录的绝对路径。
推荐阅读
- python-3.x - 使用 psycopg2 连接到 psql docker 容器但无法读取或写入
- javascript - 为什么 if(1) 比 if(true) 快
- java - 为什么来自超类变量的 getClass() 返回子类类名?
- google-apps-script - 按发件人统计收件箱中的电子邮件数量
- django - Docker:撰写文件与 Amazon ECS 不兼容
- perl - 在 Strawberry Perl 5.28 上安装 Chart::Plotly
- javascript - 自定义域 Firebase cloudfunctions API
- web - Startup.cs 中的 HostEnvrionment 设置在哪里?
- python - 将多列中的虚拟值替换为来自另一个 pandas 数据帧的相应字符串值
- azure-functions - 使用 ARM 模板将 Web 部署到 Azure Functions 失败并出现 ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER