recherche

Maison  >  Questions et réponses  >  le corps du texte

django - Quelles sont les raisons pour lesquelles les fichiers statiques ne sont pas accessibles avec des erreurs 403 après la migration de Nginx vers Alibaba Cloud ?

p.s : Le projet Django peut s'exécuter avec succès localement, mais il ne fonctionne pas après la migration vers Alibaba Cloud.

Environnement d'exécution : ubuntu14.04+uwsgi+nginx+django1.9.

Ceci est une capture d'écran de la page d'administration lors de l'accès à Django. Tous les fichiers CSS ne peuvent pas être chargés. Le message d'erreur détaillé est publié ci-dessous.

L'emplacement du projet dans Alibaba Cloud est /root/mysite.

/etc/nginx/site-enabled/mysite.conf est le suivant

server {
    listen 8080;
    server_name www.domainname.com;

    location /static/ {
        alias /root/mysite/blog/static/;
    }

    location / {
        uwsgi_pass 127.0.0.1:8001;
        include     /etc/nginx/uwsgi_params;
    }
}

Question supplémentaire : tous les fichiers statiques ont été collectés dans le répertoire spécifié par mon alias

$ python manage.py collectstatic
0 static files copied to '/root/mysite/blog/static', 69 unmodified.

# 文件权限没有问题
$ ll /root/mysite/blog/static
total 16
drwxrwxr-x 4 root root 4096 Oct  5 09:13 ./
drwxrwxr-x 6 root root 4096 Oct  5 15:28 ../
drwxrwxr-x 6 root root 4096 Oct  5 09:13 admin/
drwxrwxr-x 5 root root 4096 Oct  5 09:13 blog/
# mysite/settings.py中已经指定了下面两项,**collectstatic**也收集成功,所以我觉得配置可能不存在问题
# 而且项目在本地能够运行,就是迁移到阿里云后无法运行了,所以是不是可能是阿里云的权限问题。
STATIC_URL="/static/"
STATIC_ROOT = os.path.join(BASE_DIR, 'blog/static')

C'est la correctepage

de localhost:8080/admin lorsque j'expérimentais localement.

伊谢尔伦伊谢尔伦2754 Il y a quelques jours567

répondre à tous(2)je répondrai

  • 怪我咯

    怪我咯2017-05-16 17:15:48

    alias /root/mysite/blog/static/;

    /root Le répertoire n'est accessible que par root par défaut. Peu importe l’ouverture des fichiers qu’ils contiennent, cela ne sert à rien si nginx ne peut pas y accéder.

    Les fichiers du site Web sont généralement placés sous /srv/http.

    De plus, si vous ne voulez pas que votre serveur soit utilisé comme un poulet de chair, attaque d'autres personnes, envoie du spam ou serve de proxy gratuit, n'exécutez pas de programmes Web avec les privilèges root.

    répondre
    0
  • 阿神

    阿神2017-05-16 17:15:48

    Je n'y connais pas grand chose, je viens d'utiliser le serveur Alibaba Cloud ECS pour créer un blog

    répondre
    0
  • Annulerrépondre