centos 找不到Django管理静态文件(404未找到)

tcbh2hod  于 2022-11-07  发布在  Go
关注(0)|答案(1)|浏览(88)

我的Django项目部署在EC2示例上。除了静态文件外,一切正常。下面是我的项目目录路径树

my_project
    └─admin
        ├── admin
        │   ├── admin
        │   ├── keywords
        │   ├── manage.py
        │   └── static
        ├── README.md

这是我的settings.py静态文件设置代码。


# settings.py

debug=False

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
ROOT_DIR = os.path.dirname(BASE_DIR)

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR,'my_project/static')

STATICFILES_DIRS = [
    STATIC_ROOT
]

这是我的nginx.conf文件

root /usr/share/nginx/html;

location = /favicon.ico { access_log off; log_not_found off; }

location /static {
    alias /static/;
}

location / {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass http://unix:/home/devel/run/gunicorn.sock;
}

error_page 404 /404.html;
    location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

还有我的机器环境:
Centos 7.9Python皮3.6.8 Django 4.0.6
我已经执行了python manage.py collectstatic命令。
当我进入这个项目的管理页面,每个UI都加载了CSS和JS虽然。
是我的设置有什么地方出错了吗?我想知道为什么django找不到任何静态文件。

juud5qan

juud5qan1#

假设您的BASE_DIR与/usr/share/nginx/html相同,并且BASE_DIR/myproject/static存在并且有内容,请尝试

location /static/ {
    root /myproject/;
}

(根据nginx文档,使用根目录而不是别名,因为结束目录是相同的)
我假设您之前的根定义将为位置添加前缀-如果不是这样,您可能必须显式地使用root /usr/share/nginx/html/myproject/

相关问题