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 中面临问题的主要内容,如果未能解决你的问题,请参考以下文章