你如何让Gunicorn + Flask通过https提供静态文件?

时间:2014-04-04 22:34:00

标签: python ssl heroku flask gunicorn

我正在使用Gunicorn + Flask + Python来开发一个Heroku应用程序,我希望能够在本地与工头一起运行它。它工作正常,但当我切换到我的网站使用SSL时,它不再能够在/ static下找到javascript文件。如何在HTTPS下提供这些功能?

2 个答案:

答案 0 :(得分:-1)

你可以使用nginx前端gunicorn吗?如果是这样,那么您可以通过SSL向jginx.conf中添加如下位置块来提供静态内容(如javascript):

server {
    listen 443 ssl;
    # other normal ssl stuff you seem to already have working 

    location / {
        root /path/to/your/static/stuff;
        try_files $uri /index.html; # this will match your static content
    }
    location /api {
        # your normal proxy stuff to gunicorn
    }
}

另外,您可以通过http提供与API分开的静态内容以提高效率,如下所示:

server { listen 80;  location / { try_files $uri /index.html; } }
server {
    listen 443 ssl;
    # other normal ssl stuff you seem to already have working 
    location /api {
        # your normal proxy stuff to gunicorn
    }
}

答案 1 :(得分:-1)

最简单的方法是使用Kenneth Reitz的Flask-SSLify库。