Wenn der Debug-Modus auf einem Server wie Heroku oder GAE (Google App Engine) auf False gesetzt ist, werden die von Django für die Entwicklung bereitgestellten statischen Dateien nicht bereitgestellt und CSS, JS, img usw. werden möglicherweise nicht angezeigt. Es gibt.
Daher kann ich dieses Problem lösen, indem ich eine statische Datei in Google Cloud Storage hochlade. Ich möchte erklären, wie das geht.
Offizielle Dokumentation zu Django Strage (Google Cloud Storage) https://django-storages.readthedocs.io/en/latest/backends/gcloud.html
Installieren Sie "Django Strage (Google Cloud Storage)", eine Django-Bibliothek für die Arbeit mit Google Cloud Strage auf Django, mit pip.
bash
$ pip install django-storages[google]
Registrieren Sie in der Google Cloud Platform Ihre Cloud Strage-Anmeldeinformationen und erhalten Sie eine JSON-Datei mit Ihren Anmeldeinformationen.
Sie können es aus dem Google Start Guide (https://cloud.google.com/docs/authentication/getting-started) herunterladen.
Schritt 1 Wählen Sie unter dem Link im Google Start Guide (https://cloud.google.com/docs/authentication/getting-started) die Option "Gehe zur Seite [Dienstkontoschlüssel erstellen]]."
Schritt 2 Geben Sie den Namen des Dienstkontos unter Neues Dienstkonto erstellen ein. Wählen Sie dann "Speicher" -> "Speicheradministrator" aus der Rolle. Stellen Sie sicher, dass der Schlüsseltyp JSON ist, und klicken Sie auf die Schaltfläche "Erstellen". Dadurch wird die JSON-Datei heruntergeladen.
** Legen Sie die heruntergeladene JSON-Datei im Stammverzeichnis Ihres Django-Projekts ab. ** ** **
Die Einheit von Cloud Strage wird als Bucket bezeichnet (dh wie ein Bucket zum Einfügen von Daten). Erstellen Sie dies, um Ihre Daten zu speichern.
Google Cloud Console (Cloud Strage) https://console.cloud.google.com/storage/browser
Wenn Sie über die oben genannte URL darauf zugreifen, wird der folgende Erstellungsbildschirm angezeigt. Erstellen Sie daher einen neuen Bucket.
Wenn Sie fertig sind, wird der folgende Bildschirm angezeigt.
Damit sind die Einstellungen in der Google Cloud Platform-Konsole abgeschlossen.
Legen Sie den Standardspeicher und den Bucket-Namen in der Datei settings.py fest.
settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
GS_BUCKET_NAME = '[YOUR_BUCKET_NAME_GOES_HERE]'
from google.oauth2 import service_account
GS_CREDENTIALS = service_account.Credentials.from_service_account_file(
os.path.join(BASE_DIR, '[YOUR_AUTHENTICATON_KEY_FILE_NAME].json'),
)
Damit sind die Einstellungen abgeschlossen.
Führen Sie danach den folgenden Befehl aus.
bash
$ python manage.py collectstatic
Das Bereitstellen der Konfigurationsänderungen auf dem Server sollte funktionieren.
Danke für deine harte Arbeit.
Recommended Posts