通过 apache 提供静态文件服务

通过 apache 提供静态文件服务

我对整个 mod_wsgi 和通过 apache 提供文件服务还不熟悉。我对 flask 非常熟悉,但这一点我无法理解。我编写了 hello-world 程序并成功显示了 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

我的模板很简单,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。

相关内容