Ich werde die Einstellungsmethode aufschreiben, um die statische Datei (CSS und Image) des Django-Projekts zur Erinnerung korrekt in der EC2 (Amazon Linux2) + Apache-Umgebung anzuzeigen.
Die Methode zum Anzeigen statischer Dateien unterscheidet sich zwischen dem Django-Entwicklungsserver und dem Webserver wie Apache. Schreiben Sie zunächst den Inhalt von settings.py wie folgt neu.
settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static') #Für die Produktion
# STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")] #Zur Entwicklung
Führen Sie anschließend den folgenden Befehl aus, um die statischen Dateien unter jeder Anwendung in dem statischen Ordner direkt unter dem Projekt zusammenzufassen.
$ python3 manage.py collectstatic
Erstellen Sie als Nächstes eine Apache-Konfigurationsdatei unter /etc/httpd/conf.d/. Hier wird es mit dem Namen "myproject.conf" erstellt.
Führen Sie den folgenden Befehl aus, um die Einstellungsdatei zu bearbeiten.
sudo vi /etc/httpd/conf.d/myproject.conf
myproject.conf
LoadModule wsgi_module /usr/local/lib64/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so
ServerName <Listen Sie die öffentliche IP-Adresse von EC2 auf>
WSGIScriptAlias / /home/ec2-user/myproject/myproject/wsgi.py
WSGIPythonPath /home/ec2-user/myproject:/usr/bin/python3
<Directory /home/ec2-user/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Alias /static/ /home/ec2-user/myproject/static/
<Directory /home/ec2-user/myproject/static>
Require all granted
</Directory>
Die Zeilen 1-12 dienen zum Zuordnen von Apache zu mod_wsgi. Die 14. und die folgenden Zeilen sind die Beschreibung, um statische Ordner zuzulassen.
Starten Sie schließlich Apache neu.
sudo service httpd restart
Die statische Datei sollte nun korrekt angezeigt werden.
Recommended Posts