[PYTHON] Die Geschichte, dass CSS nicht mehr angewendet wird, wenn die Django-App von lokal auf AWS hochgeladen wird

Hintergrund

Um Django und AWS zu lernen, klonen Sie nach dem lokalen Erstellen einer Django-App basierend auf dem folgenden Artikel diese von Github auf AWS. Artikel, der die Systementwicklung mit Django (Python) _Introduction ermöglicht [In 20 Minuten bereitstellen] Erstellen Sie eine Django + PostgreSQL + Nginx-Umgebung auf AWS EC2 und veröffentlichen Sie sie schnell

Nach "python3 manage.py runserver" in AWS stelle ich fest, dass das CSS, das lokal auf den Administratorbildschirm angewendet wurde, nicht angewendet wird. スクリーンショット 2020-03-21 10.38.02.png

Lösungen

Als Ergebnis der Überprüfung des Nginx-Protokolls habe ich bestätigt, dass ein Fehler aufgetreten ist, den der CSS-Pfad nicht bestanden hat.

$ tail -F /var/log/nginx/error.log
(Weggelassen)
2020/03/21 01:18:04 [error] 23086#23086: *197 open() "/home/ubuntu/repository/mysite/static/admin/css/base.css" failed (2: No such file or directory), client: XXX.XXX.XXX.XXX, server: XXX.XXX.XXX.XXX, request: "GET /static/admin/css/base.css HTTP/1.1", host: "XXX.XXX.XXX.XXX", referrer: "http://XXX.XXX.XXX.XXX/admin/login/?next=/admin/"

Gemäß Umgang mit statischen Dateien in Django können Sie den Befehl "static statisch" verwenden, um den Pfad zu übergeben. Nachdem Sie die Einstellungen für die Verarbeitung statischer Inhalte von "settings.py" wie folgt festgelegt haben, führen Sie "python3 manage.py collect static" aus

settings.py


#Unten wurden Einstellungen für statische Dateiaufrufe hinzugefügt
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_NAME = os.path.basename(BASE_DIR)
#STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] 
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
$ python3 manage.py collectstatic

You have requested to collect static files at the destination
location as specified in your settings:

    /home/ubuntu/repository/mysite/static

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

119 static files copied to '/home/ubuntu/repository/mysite/static'.

Die statische Datei des Verwaltungsbildschirms (die unter ~ / .local / lib / python3.5 / site-packages / django / contrib / admin / static / `) wird in das statische Verzeichnis kopiert.

$ ls ~/repository/mysite/static
admin  css  images  js
(css,image,js erstellt mit mkdir)

$ ls ~/repository/mysite/static/admin
css  fonts  img  js

Dadurch wurde der CSS-Pfad des Verwaltungsbildschirms übergeben. スクリーンショット 2020-03-21 11.16.43.png

Recommended Posts

Die Geschichte, dass CSS nicht mehr angewendet wird, wenn die Django-App von lokal auf AWS hochgeladen wird
Immerhin die Geschichte der Rückkehr von Linux zu Windows
Die Geschichte, den privaten Schlüssel mit chmod auf 600 zu setzen
Nach dem Löschen von Java-Prozessprotokollen werden keine Protokolle mehr ausgegeben
Eine Geschichte, die ich süchtig danach war, Lambda von AWS Lambda anzurufen.
Heroku-Bereitstellung der ersten Django-App, von der Anfänger abhängig sind
Einstellungen, mit denen auf IPython Notebook von außerhalb des lokalen Bereichs zugegriffen werden kann
Mia Nanasawas Gesicht ist (ノ ´ □ `) ノ Auf das ursprüngliche schöne Gesicht wird keine Rauschverarbeitung angewendet