Wie der Titel schon sagt
Die Geschichte, wenn die Django-Anwendung unter AWS unter / home / ec2-user /
platziert wird
Der WEB-Server verwendet Nginx
Beim Veröffentlichen einer Django-Anwendung statische Dateien
$ python manage.py collectstatic
Muss irgendwo zusammengestellt werden
settings.py sieht so aus
settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS=(
os.path.join(BASE_DIR, "app/static/"),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Auf diese Weise werden verschiedene CSS und JS in / home / ec2-user / django_project_root / static
gesammelt und können unter http: // domain / static
abgerufen werden.
Machen Sie die Datei nginx.conf wie folgt für statische Dateien zugänglich
nginx.conf
server {
...
location /static/ {
autoindex on;
alias /home/ec2-user/django_project_root/static/;
}
Wenn Sie sich den Status der Anwendung ansehen, weil dies damit möglich ist, wird CSS nicht angewendet (403 verboten). Schauen Sie sich /var/log/nginx/error.log an
2017/08/29 02:17:27 [error] 11629#0: *22 open() "/home/ec2-user/django_project_root/static/apps/css/base.css" failed (13: Permission denied), client: xx.xxx.xxx.xxx, server: xx.xxx.xxx.xxx, request: "GET /static/apps/css/base.css HTTP/1.1", host: "xx.xxx.xxx.xxx", referrer: "http://xx.xxx.xxx.xxx/"
Ich habe einen solchen Berechtigungsfehler erhalten
SElinux ist schlecht, wenn ich verschiedene Brillen probiere, nicht wahr? Es gab einen Artikel wie
$ getenforce
Disabled
War behindert
Ich habe versucht, mit den Berechtigungen statischer Dateien und den Berechtigungen des Verzeichnisses / home / ec2-user / django_project_root / static /
zu spielen, aber der Status hat sich nicht geändert.
Der Anfangszustand ist 700 (drwx ------), aber es war notwendig, anderen die Ausführungsberechtigung zu erteilen.
$ sudo chmod o+x /home/ec2-user/
mit diesem
xx.xxx.xxx.xxx - - [29/Aug/2017:02:54:10 +0000] "GET /static/apps/css/login.css HTTP/1.1" 200 1203 "http://xx.xxx.xxx.xxx" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36" "-"
Ja Sie können jetzt sicher auf statische Dateien zugreifen
Es war eine rudimentäre Geschichte, dass Sie, selbst wenn Sie die Ausführungsberechtigung für das untergeordnete Verzeichnis haben, nicht "in das Verzeichnis selbst verschieben" können, ohne die Ausführungsberechtigung für das übergeordnete Verzeichnis auszuführen ...
Recommended Posts