我尝试使用PIL在Flask app的静态文件夹中打开图像。当我在本地运行时,它可以工作。当我部署到Bluemix时,它无法找到图像。
from PIL import Image
jpg = Image.open('static/images/image.jpg')
我发现它可能是os路径的问题,所以我尝试了以下但是它没有解决问题。
import os, sys
from PIL import Image
jpg = Image.open(os.path.join(sys.path[0], 'static/images/image.jpg'))
如何在本地或Bluemix上运行静态文件?
myproject/
static/
images/
image.jpg
myapp.py
答案 0 :(得分:1)
您正在使用相对路径,该路径相对于当前工作目录。在开发过程中,您将从应用程序的目录中运行。在生产中,WSGI服务器正在运行应用程序,并且未在该目录中启动。建立绝对路径。 app.static_folder
是基本静态文件夹的路径。
os.path.join(app.static_folder, 'images', 'image.jpg')