使用前缀部署django app时,不会加载静态文件

时间:2017-03-13 04:55:37

标签: python django wordpress nginx gunicorn

我正在尝试将django应用程序与wordpress一起部署在同一个域中。 Django应用程序应该在郊区:“domain.com/djangoapp”。我尝试在nginx conf文件和django settings.py中将SCRIPT_NAME变量设置为该前缀。它工作,django app可以在/ djangoapp url下访问,但静态文件不能加载。

我有以下nginx配置:

server {
    server_name domain.com   www.domain.com;

    root /var/www/domain.com/htdocs;

    index index.php index.html index.htm;

    include  common/redis.conf;
    include common/wpcommon.conf;

    location /static {
        root /home/user/project;
    }

    location /djangoapp/ {
        include proxy_params;
        proxy_pass http://unix:/home/user/project/project.sock
        proxy_set_header SCRIPT_NAME /djangoapp;
    }
}

和settings.py:

FORCE_SCRIPT_NAME = '/djangoapp'
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

此外,我尝试在单独的域上部署django应用程序,并且静态文件会加载。除SCRIPT_NAME部分外,配置相同。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

似乎静态文件由于位置路径中错过/而未加载。或许我在静态目录的路径上做了一些错字。

我将位置更改为:

location /static/ {
        root /home/user/project;
    }

现在静态文件工作。