403 Forbidden nginx/1.18.0 (Ubuntu) for Django 3.1,在媒体文件和管理 css 中面临问题

Posted

技术标签:

【中文标题】403 Forbidden nginx/1.18.0 (Ubuntu) for Django 3.1,在媒体文件和管理 css 中面临问题【英文标题】:403 Forbidden nginx/1.18.0 (Ubuntu) for Django 3.1, facing issue in media files and admin css 【发布时间】:2021-07-19 12:31:30 【问题描述】:

我在 digitalocean 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'

下面是我的 Digital Ocean Nginx Conf

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


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

即使文件小于 100kb,它也会禁止我。

在检查 Nginx 日志后,我发现 Permission Denied 错误。

【问题讨论】:

/home/username nginx 是否有权访问此 用户主目录 文件夹? 【参考方案1】:

我通过以下方式解决了这个错误:

首先:- 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 restart project.service

sudo systemd 重启 nginx

【讨论】:

【参考方案2】:

请尝试:

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

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

如果这不起作用,请尝试像这样为“别名”更改“根”:

location /static/ 
    alias /home/username/backend/src/static/;

location /media/ 
    alias /home/username/backend/src/media/;

【讨论】:

【参考方案3】:

您的配置似乎没问题。 您应该检查的是您是否已将 NGINX 安装为 root 用户 或有权访问您尝试提供的文件的用户。

【讨论】:

【参考方案4】:

你好,Harsh Sonawane 试着在这样的媒体后面加上斜线

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

【讨论】:

以上是关于403 Forbidden nginx/1.18.0 (Ubuntu) for Django 3.1,在媒体文件和管理 css 中面临问题的主要内容,如果未能解决你的问题,请参考以下文章

403 forbidden nginx怎么解决

nginx 403 forbidden怎么解决

apache 403 forbidden怎么解决

解决 Nginx 403 forbidden

怎么解除403forbidden

svn 访问 403 forbidden怎么解决