如何正确地从Flask服务器上保存静态文件?

如何正确地从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

从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=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-未找到的原因。但是,我确实将image
job\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' )