Django Nginx静态文件未在AWS中显示

时间:2018-11-09 12:16:26

标签: django nginx amazon-ec2 django-staticfiles django-static

我有一个添加到AWS的Django项目。在开发服务器中,该站点可以正常运行,但是我无法将静态文件获取到AWS站点

下面是我的项目树,项目中有静态文件

enter image description here

以下是我的设置。py

enter image description here

以下是我的Nginx服务器

enter image description here

下面是我的supervisor.conf

[program:Khal]
command = /home/samir/KhalEventsVenv/bin/uwsgi --http :9000 --wsgi-file /home/samir/khal-events/src/Khal/Khal/wsgi.py
directory = /home/samir/khal-events/src/Khal/
user = root
autostart = true
autorestart = true
stdout_logfile = /var/log/Khal.log
stderr_logfile = /var/log/Khal_err.log

将Nginx更改为

server {
    listen 80 default_server;

    location /static/admin {
        alias /home/samir/KhalEventsVenv/lib/python3.6/site-packages/django/contrib/admin/static/admin;

    }

    location /static/ {
        alias /home/samir/khal-events/src/Khal/staticfiles;

    }

仍然无法在下面的图片中看到静态图片

enter image description here

我已经检查了路径。他们很好。但是由于某种原因,当我从AWS运行网站时,进入管理页面时也无法获取静态文件。 admin的静态文件也不在其中。如何在AWS中获取我的静态文件

enter image description here

@CoolestNerdIII的建议

enter image description here

1 个答案:

答案 0 :(得分:0)

似乎在django设置文件中,您将静态文件目录定义为/home/samir/khal-events/src/Khal/staticfiles(基于collectstatic命令和settings.py文件的屏幕截图)。

但是,在您的nginx配置文件中,您正在home/samir/khal-events/src/Khal/static内寻找静态目录。您需要将其更改为正确的路径,并且一切顺利。 (表示使用/home/samir/khal-events/src/Khal/staticfiles


更新#1:

您应该从nginx中删除/static/admin。另外,您可以尝试将/static组复制为/static/。进行更改后,请确保重新启动Nginx服务。

最后,如果这些都不能正确显示页面,请检查Web浏览器中的控制台日志以及nginx日志,因为它们通常指向信息加载不正确的地方。


更新#2:

location /static/ {
    alias /home/samir/khal-events/src/Khal/staticfiles;
}

location /static {
    alias /home/samir/khal-events/src/Khal/staticfiles;
}