L'histoire selon laquelle CSS n'est plus appliqué lorsque l'application Django est téléchargée de local vers AWS

Contexte

Pour apprendre Django et AWS, après avoir créé une application Django localement sur la base de l'article suivant, clonez-la de github vers AWS. Article qui permet le développement de système avec Django (Python) _Introduction [Déployez en 20 minutes] Créez un environnement Django + PostgreSQL + Nginx sur AWS EC2 et publiez-le rapidement

Après python3 manage.py runserver sur AWS, je remarque que le CSS qui a été appliqué à l'écran d'administration localement n'est pas appliqué. スクリーンショット 2020-03-21 10.38.02.png

Solution

À la suite de la vérification du journal Nginx, j'ai confirmé qu'une erreur que le chemin CSS n'avait pas réussi s'est produite.

$ tail -F /var/log/nginx/error.log
(Omis)
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/"

Selon Gestion des fichiers statiques dans Django, vous pouvez utiliser la commande collect static pour passer le chemin. Après avoir défini les paramètres de gestion du contenu statique de settings.py comme suit, exécutez python3 manage.py collect static

settings.py


#Ajout des paramètres d'appel de fichier statique en bas
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'.

Le fichier statique de l'écran de gestion (celui sous ~ / .local / lib / python3.5 / site-packages / django / contrib / admin / static /) est copié dans le répertoire static.

$ ls ~/repository/mysite/static
admin  css  images  js
(css,image,js créé avec mkdir)

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

Cela a passé le chemin CSS de l'écran de gestion. スクリーンショット 2020-03-21 11.16.43.png

Recommended Posts

L'histoire selon laquelle CSS n'est plus appliqué lorsque l'application Django est téléchargée de local vers AWS
Après tout, l'histoire du retour de Linux à Windows
L'histoire de la définition de la clé privée à 600 avec chmod
Les journaux ne sont plus générés après la suppression des journaux de processus Java
Une histoire à laquelle j'étais accro à appeler Lambda depuis AWS Lambda.
Déploiement Heroku de la première application Django à laquelle les débutants sont accros
Paramètres qui permettent d'accéder à IPython Notebook depuis l'extérieur du local
Le visage de Mia Nanasawa est (ノ ´ □ `) ノ Aucun traitement de bruit n'est appliqué au beau visage d'origine