如何正确地从Flask服务器上保存静态文件?
从flask服务器提供静态文件(图像、PDF、文档等)的正确方式是什么 我以前使用过如何正确地从Flask服务器上保存静态文件?,flask,static-files,Flask,Static Files,从flask服务器提供静态文件(图像、PDF、文档等)的正确方式是什么 我以前使用过send\u from\u directory方法,效果很好。以下是我的实现: @app.route('/public/assignments/<path:filename>') def file(filename): return send_from_directory("./public/assignments/", filename, as_attachment=Tr
send\u from\u directory
方法,效果很好。以下是我的实现:
@app.route('/public/assignments/<path:filename>')
def file(filename):
return send_from_directory("./public/assignments/", filename, as_attachment=True)
如果我们对此路由模拟以下请求:
curl http://127.0.0.1:5000/file/public/files/jobs/images/job_43_image_1.jpg
\u dir
变量将保存/public/files/jobs/images/
值,然后filepath[len(filepath)-1]
保存job\u 43\u image\u 1.jpg
值
如果我点击这个路由,我会得到一个404-notfound
响应,但是路由主体中的所有代码都在执行
我怀疑send\u from\u directory
函数是我得到404-未找到的原因。但是,我确实将imagejob\u 43\u image\u 1.jpg
存储在/public/files/jobs/images/
目录中
恐怕我看不出我能在这里做什么,只希望有人遇到了同样的问题,并找到了解决方法
以下是文件夹树:
├── [2050] app.py
├── [2050] public
│ ├── [2050] etc
│ └── [2050] files
│ ├── [2050] jobs
│ │ ├── [2050] files
│ │ └── [2050] images
│ │ ├── [2050] job_41_image_decline_1.jpg
│ │ ├── [2050] job_41_image_decline_2554.jpg
│ │ ├── [2050] ...
│ ├── [2050] shop
│ └── [2050] videos
└── [2050] server_crash.log
编辑1:我已经设置了静态url\u路径
。我没有理由相信这可能是我问题的原因
编辑2:添加的树初始化应用程序时传递这些参数:
app = Flask(__name__, static_folder='public',
static_url_path='frontend_public' )
这将使文件public/blah.txt
在http://example.com/frontend_public/blah.txt
静态文件夹
设置文件系统上的文件夹
静态url\u路径
设置url中使用的路径
如果两个变量均未设置,则两个变量的默认值均为'static'
希望这就是你要问的。@Patch我正在运行一个本地环境。在样板环境中,我创建了一个server
文件夹,它是routes
文件夹、models
文件夹、public
文件夹和app.py
文件夹本身的主文件夹。由于app.py
和public
文件夹共享同一个父文件夹,所以不应该有问题,对吗?
app = Flask(__name__, static_folder='public',
static_url_path='frontend_public' )