首页 > 解决方案 > Django 静态文件不会加载到已部署的服务器上

问题描述

我使用 django、apache 和 mod_wsgi 的最新版本。我尝试在 Ubuntu 16 上部署项目。与静态文件有关的问题。他们没有加载,如下图所示(图在那里)。实际上,也许我只是没有看到我在哪里犯了错误,因为我在 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,看来,我什么都做了,但还是不行……救命!

标签: djangoapachedeploymentmod-wsgi

解决方案


子路径上不应有斜杠。代替:

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


推荐阅读