我是整个mod_wsgi的新手,并通过apache提供文件。我对烧瓶很满意,但这是我无法理解的问题。我做了hello-world程序并成功地展示了你好世界! 现在我想显示一个图像文件。所以我将hello-world.py更新为:
from flask import *
yourflaskapp = Flask(__name__)
@yourflaskapp.route("/")
def hello():
file="203.jpg"
return render_template("hello.html",file=file)
# return"HEY"
if __name__ == "__main__":
yourflaskapp.run()
我的目录结构类似于:/ var / www / hello-world
/hello-world
test.py
yourflaskapp.wsgi
/static
-203.jpg
/templates
-hello.html
我的模板很简单:
<!DOCTYPE html>
<html><head><title>hi</title></head>
<body>
<img src="{{url_for('static',filename=file)}}"/>
</body></html>
我的apache conf文件是:
<VirtualHost *:80>
WSGIDaemonProcess yourflaskapp
WSGIScriptAlias / /var/www/hello-world/yourflaskapp.wsgi
Alias /static/ /var/www/hello-world/static
Alias /templates/ /var/www/hello-world/templates
<Directory /var/www/hello-world>
WSGIProcessGroup yourflaskapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
<Directory /var/www/hello-world/static>
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/hello-world/templates>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
虽然当我打开浏览器并前往我的IP时,它并没有显示图像文件。 我究竟做错了什么?我应该遵循其他任何方法吗? 如果有人可以推荐任何好的链接,我可以理解使用flask + mod_wsgi + apache2
答案 0 :(得分:0)
在子URL上安装静态文件时,通常总是优先使用尾部斜杠。所以而不是:
Alias /static/ /var/www/hello-world/static
使用:
Alias /static /var/www/hello-world/static