Django静态文件无法在已部署的服务器

时间:2018-05-01 19:57:06

标签: django apache deployment mod-wsgi

我使用的是django,apache和mod_wsgi的最新版本。我试图在Ubuntu 16上部署项目。问题与静态文件有关。它们没有加载,如下图所示(figure there)。 实际上,也许我只是不知道我犯了哪个错误,因为我在google和stackoverflow中尝试了大部分内容。

.conf文件中的代码:

Alias /media/ /var/www/fpbg/media
Alias /static/ /var/www/fpbg/static

<Directory /var/www/fpbg/media>
    Require all granted
</Directory>

<Directory /var/www/fpbg/static> # also I tried staticfiles
    Require all granted
</Directory>

settings.py中的代码:

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
    # '/var/www/static/',
]

我执行了manage.py collectstatic,似乎,我做了一切,但它仍然无法工作......帮助!

1 个答案:

答案 0 :(得分:0)

您不应在子路径上使用尾部斜杠。而不是:

Alias /media/ /var/www/fpbg/media
Alias /static/ /var/www/fpbg/static

使用:

Alias /media /var/www/fpbg/media
Alias /static /var/www/fpbg/static

使用你所拥有的,为:

/static/foo.txt

它会试图找到:

/var/www/fpbg/staticfoo.txt

并且会失败。

以上假设您已STATIC_ROOT匹配并且已经运行collectstatic