Ich habe eine schwere Zeit mit der Bereitstellung meiner Django-App (v1.9) zu Heroku (Psql 9.5), Zeder Stack-14.Django Bereitstellung auf Heroku gibt Website kann nicht erreicht werden Antwort
Hier ist, wie ich hier ankam: Ich hatte enorme Migrationsprobleme, die zu "" "django.db.utils.ProgrammingError: Beziehung bereits existiert" "", und "" "Django Spalte" Name "der Beziehung" django_content_type " existiert nicht "" "Fehler. Herauszufinden, dass es alt, falsch behandelt Migrationen int django_migrations Tabelle importiert, habe ich beschlossen, bis zu einem leeren Heroku eine frische, lokale zu schieben db mit:
PGUSER=dbnameHERE PGPASSWORD=dbpassHERE heroku pg:push localDBnameHERE DATABASE --app appnameHERE
Dieses einwandfrei funktioniert. Danach passiert, was passiert, wenn ich diese Befehle ausführen:
Wenn ich Heroku lokal ausführen, wird meine vollständige App lokal auf 0.0.0.0:5000 angezeigt. (/ admin funktioniert, aber mit CSS-Problemen, vermutlich BC die Whitenoise-Modul importiert ich nicht gut unter Produktion .env Einstellungen)
Wenn ich heroku local -e .env.DEV (Entwicklung .env Einstellungen) auf 0.0 .0.0: 5000, alles, einschließlich/admin, funktioniert wunderbar.
Das Problem beginnt, wenn Gunicorn ins Bild kommt. Wenn ich gunicorn config.wsgi: Anwendung laufen, läuft es, aber ich bekomme "Diese Seite kann nicht erreicht werden, nahm localhost zu lange, um zu antworten" leere Seite. Hier
ist der Request-Header aus dem Rohling Homepage:
HTTP/1.1 301 Moved Permanently
Connection: keep-alive
Server: gunicorn/19.4.5
Date: Tue, 07 Jun 2016 22:39:00 GMT
Transfer-Encoding: chunked
Location: https://sitename.herokuapp.com/
Content-Type: text/html; charset=utf-8
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Via: 1.1 vegur
Als ich Heroku laufen - Heroku laufen Python manage.py überprüfen --deploy, bekomme ich diese:
WARNINGS:
?: (security.W001) You do not have 'django.middleware.security.SecurityMiddleware' in your MIDDLEWARE_CLASSES so the SECURE_HSTS_SECONDS, SECURE_CONTENT_TYPE_NOSNIFF, SECURE_BROWSER_XSS_FILTER, and SECURE_SSL_REDIRECT settings will have no effect.
?: (security.W009) Your SECRET_KEY has less than 50 characters or less than 5 unique characters. Please generate a long and random SECRET_KEY, otherwise many of Django's security-critical features will be vulnerable to attack.
?: (security.W012) SESSION_COOKIE_SECURE is not set to True. Using a secure-only session cookie makes it more difficult for network traffic sniffers to hijack user sessions.
?: (security.W016) You have 'django.middleware.csrf.CsrfViewMiddleware' in your MIDDLEWARE_CLASSES, but you have not set CSRF_COOKIE_SECURE to True. Using a secure-only CSRF cookie makes it more difficult for network traffic sniffers to steal the CSRF token.
?: (security.W017) You have 'django.middleware.csrf.CsrfViewMiddleware' in your MIDDLEWARE_CLASSES, but you have not set CSRF_COOKIE_HTTPONLY to True. Using an HttpOnly CSRF cookie makes it more difficult for cross-site scripting attacks to steal the CSRF token.
?: (security.W018) You should not have DEBUG set to True in deployment.
?: (security.W019) You have 'django.middleware.clickjacking.XFrameOptionsMiddleware' in your MIDDLEWARE_CLASSES, but X_FRAME_OPTIONS is not set to 'DENY'. The default is 'SAMEORIGIN', but unless there is a good reason for your site to serve other parts of itself in a frame, you should change it to 'DENY'.
?: (security.W020) ALLOWED_HOSTS must not be empty in deployment.
System check identified 8 issues (0 silenced).
Same blank Seite und 301 umleiten ohne Fehlercode, wenn ich zu sitename.herokuapp.com navigiere, die ich beim Ausführen von Gunicorn bekommen habe. Irgendeine Vermutung darüber, warum meine App Weiterleitungen auslöst, wenn sich Gunicorn beteiligt?
beiseite, viele der Warnungen sind nicht korrekt, dh ALLOWED_HOSTS ist auf ['*'] in env vars gesetzt, und DEBUG ist auf False gesetzt. Bedeutet dies, dass Änderungen an env vars nicht aufgenommen werden, wenn ich nach heroku schiebe? – DNburtonguster