访问 stye.css 被拒绝 - Django 静态文件 - Nginx - 我无法让我的项目读取静态文件(style.css)

问题描述 投票:0回答:1

我不知道它会是什么了,我已经授予了文件、目录权限,检查了 nginx 配置,sites-available/enabled 中的文件,我已经通过 django-shell 清除了缓存,我已经重新启动了实例。我根本不知道。

这是 nginx 的输出:

sudo tail -f /var/log/nginx/error.log

2024/03/28 02:27:01 [error] 2952#2952: *12 open() "/home/ubuntu/learning-app/learning-log/learningLog/staticfiles/learningLogApp/css/estilo.css" failed (13: Permission denied), client: 179.214.112.55, server: django.xxx.dev, request: "GET /static/learningLogApp/css/estilo.css HTTP/1.1", host: "django.xxx.dev", referrer: "https://django.xxx.dev/assuntos/"

nginx.config:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {



    sendfile on;
    tcp_nopush on;
    types_hash_max_size 2048;


    include /etc/nginx/mime.types;
    default_type application/octet-stream;



    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;



    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;



    gzip on;



    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

可用站点

server {
    listen 80;
    listen 443 ssl;
    server_name django.xxx.dev;

    ssl_certificate /etc/letsencrypt/live/django.xxx.dev/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/django.xxx.dev/privkey.pem;

    location / {
        proxy_pass http://localhost:8000;
        include /etc/nginx/proxy_params;
    }
    location /static/ {
        alias /home/ubuntu/learning-app/learning-log/learningLog/staticfiles;
    }
    # Redirecionamento de HTTP para HTTPS
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }
}

设置.py

DEBUG = False
...
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')


我尝试了什么

sudo chmod -R a+r /home/ubuntu/learning-app/learning-log/learningLog/staticfiles
sudo find /home/ubuntu/learning-app/learning-log/learningLog/staticfiles -type d -exec chmod a+x {} +
sudo chown -R www-data:www-data /home/ubuntu/learning-app/learning-log/learningLog/staticfiles
sudo chmod -R 755 /home/ubuntu/learning-app/learning-log/learningLog/staticfiles

django shell

from django.core.cache import cache
cache.clear()

=(我不知道还能尝试什么

django nginx django-templates nginx-config django-staticfiles
1个回答
0
投票

我明白了..首先我用

检查了目录权限
namei -l /home/ubuntu/learning-app/learning-log/learningLog/staticfiles/learningLogApp/css/estilo.css
drwxr-xr-x root     root     /
drwxr-xr-x root     root     home
drwxr-x--- ubuntu   ubuntu   ubuntu
drwxr-xr-x ubuntu   ubuntu   learning-app
drwxr-xr-x ubuntu   ubuntu   learning-log
drwxr-xr-x ubuntu   ubuntu   learningLog
drwxr-xr-x www-data www-data staticfiles
drwxr-xr-x www-data www-data learningLogApp
drwxr-xr-x www-data www-data css
-rwxr-xr-x www-data www-data estilo.css

然后...

sudo chmod 755 /home/ubuntu
sudo systemctl restart nginx

Jezz...=P 我知道这很简单,哈哈

© www.soinside.com 2019 - 2024. All rights reserved.