J'essaie de déployer mon application sur heroku.
Le déploiement a été effectué correctement mais j'ai eu une erreur de serveur (500).
Lorsque j'ai activé DEBUG true, l'erreur du serveur ne s'est pas produite.
Donc, je pense qu'il y a quelque chose qui ne va pas avec le chargement de fichiers statiques.
Je ne trouve aucune erreur critique notable dans le journal.
J'ai déjà installé whitenoise, mais cela ne fonctionne pas.
Y a-t-il quelqu'un qui résout ce problème?
Journaux heroku
web: gunicorn project5.wsgi --log-file -
settings.py
import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project5.settings') application = get_wsgi_application()
wsgi.py
XXX
Procfile
import os import dj_database_url import django_heroku BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DEBUG = False SECRET_KEY = *** ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'blog5.apps.Blog5Config', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'markdownx', 'widget_tweaks', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' ROOT_URLCONF = 'project5.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'project5.wsgi.application' DATABASES = { 'default': dj_database_url.config() } SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = True STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STATIC_URL = '/static/' # STATICFILES_DIRS = ( # os.path.join(BASE_DIR, 'static'), # ) MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' os.makedirs(STATIC_ROOT, exist_ok=True) try: from .local_settings import * except ImportError: pass django_heroku.settings(locals())
4 Réponses :
Cela n'a rien à voir avec la blancheur. Le problème est votre paramètre ALLOWED_HOSTS; cela doit avoir le nom d'hôte de votre site.
J'ai essayé ALLOWED_HOSTS = ['*'], mais je n'ai pas fonctionné. Existe-t-il un autre moyen de définir ALLOWED_HOSTS?
Essayez ALLOWED_HOSTS = ['.herokuapp.com']
J'ai essayé ALLOWED_HOSTS = ['*'], ALLOWED_HOSTS = ['.herokuapp.com'] et ALLOWED_HOSTS = ['shunka-blog.herokuapp.com']. Mais encore une erreur de serveur ...
Même problème ici. ['*', '.herokuapp.com'] ne fonctionne pas.
J'ai déployé mon application sur EC2, au lieu d'Heroku. Cela fonctionne bien pour le moment lorsque DEBUG est défini sur False.
Je ferme donc cette question. Merci pour vos conseils.
Définissez DEBUG = True dans votre fichier settings.py pour vérifier que l'erreur exacte s'est produite et ajoutez l'URL du domaine heroku dans la liste ALLOWED_HOST.
J'ai écrit une petite instruction ici comment j'ai résolu ce problème https://stackoverflow.com/a/56456466/7986808. En bref: vous devez modifier la journalisation pour découvrir le vrai problème dans les journaux heroku.
avez-vous installé gunicorn dans heroku?
Oui. J'ai mis gunicorn == 19.9.0 dans requirements.txt
Essayez ceci DISABLE_COLLECTSTATIC = 1, dans les paramètres-> révéler les configurations-> ajouter ceci
J'ai essayé, mais je n'ai pas fonctionné.