uWSGI:如何从root用户提供静态文件,从子目录提供应用程序?

时间:2015-12-12 20:11:21

标签: python flask uwsgi cloud9-ide

我正在使用Cloud 9 IDE构建网站。我的目标是从站点根目录'/index.html'提供静态网站,依此类推。此站点中的内容将按计划重新生成(在此示例中为每日)。在'/ admin'和'/ api'端点我想提供几个烧瓶应用程序。

由于这是在Cloud 9 IDE上构建的,因此我无法访问代理服务器配置。我必须使用HTML协议将所有内容提供给一个端口。 uWSGI能够做到这一点。我虽然在配置文件上苦苦挣扎:

#uwsgi.ini
[uwsgi]
static-index = index.html
static-map2 = /=/home/ubuntu/workspace/generated-site
static-map2 = /static=/home/ubuntu/workspace/static-assets

mount = /admin=admin.py
mount = /api=api.py
manage-script-name = true

master = true
processes = 5

socket=0.0.0.0:8080 
protocol=http

/admin/api的请求按预期工作,返回结果或404错误。

//index.html的请求都按预期返回generated-site/index.html。 对/no_exist.html的请求按预期返回404 Not Found

我的问题在于第二个static-map2。对/static/test.html的请求返回404 Not Found(我在那里放了一个html文件进行测试)。

1 个答案:

答案 0 :(得分:0)

static-map2保留其搜索网址的路径部分,以便将请求/static/test.html映射到文件

/home/ubuntu/workspace/static-assets/static/test.html

你很可能想要简单的static-map,它在映射到文件系统之前从URL中删除路径。因此,/static/test.html的请求将搜索文件

/home/ubuntu/workspace/static-assets/test.html