403 Django 3.1中禁止使用nginx/1.18.0(Ubuntu),媒体文件和管理CSS中存在问题

j0pj023g  于 2022-11-02  发布在  Nginx
关注(0)|答案(5)|浏览(437)

我已经在数字海洋Ubuntu 20.04和nginx/1.18.0(Ubuntu)上安装了Django 3.1,并使用了REST API
以下是我的静态和媒体文件设置。

STATIC_URL = '/static/'
STATICFILES_DIRS = [
  BASE_DIR / "static",
]

STATIC_ROOT = BASE_DIR / 'static_in_env'

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

以下是我的数字海洋Nginx会议

location /static/ {
    root /home/username/backend/src;
}

location /media {
    root /home/username/backend/src;
}

它甚至禁止我访问小于100 kb的文件。
此外,在检查Nginx日志后,我发现权限被拒绝错误.

11dmarpk

11dmarpk1#

我通过以下方法解决了此错误:
第一个:-chmod -R 777 media(在介质文件夹之外)
第二个:-在/etc/nginx/sites-available/project.conf

location /static/ {

    root /home/username/project;
}
location /media/ {

    root /home/username/project;

}

location /static/ {

    alias /home/username/project/static/;
}
location /media/ {

    alias /home/username/project/media/;
}

第三步:-重新加载服务文件和nginx
sudo systemd重新启动项目.服务
sudo系统重新启动nginx

cfh9epnr

cfh9epnr2#

你好,哈什·索纳万,试着在媒体后面加上斜线,就像这样

location /media/ {
    root /home/username/backend/src;
}
iszxjhcz

iszxjhcz3#

您的配置似乎没有问题。
您应该检查的是,您是否以*root用户或有权访问您尝试提供的文件的用户身份安装了NGINX。

rkttyhzu

rkttyhzu4#

在Ubuntu服务器上创建DIR和更改权限:

sudo mkdir -pv /var/www/your_project/media/
sudo chown -cR ubuntu:ubuntu /var/www/your_project/media

然后更改settings.py

MEDIA_URL = '/var/www/your_project/media/'
MEDIA_ROOT = '/var/www/your_project/media'
2admgd59

2admgd595#

请尝试:

location /static/ {
    root /home/username/backend/src/static/;
}
location /media/ {
    root /home/username/backend/src/media/;
}

如果不起作用,请尝试将“alias”的“root”更改为如下所示:

location /static/ {
    alias /home/username/backend/src/static/;
}
location /media/ {
    alias /home/username/backend/src/media/;
}

相关问题