前提・実現したいこと
djangoでアプリケーションを作成し、html,css,js,img等を用意したが、htmlのみが適用されてしまい、静的ファイルが表示されない問題を解決したい。また、python3 manage.py collectstaticは実行済みで、特にエラーなく実行できた。
ここに質問の内容を詳しく書いてください。
htmlに{% load static%}を書き、css,js,img等の該当するところを{%static '相対ファイル'%}に書き換え、herokuにデプロイすると500エラーが発生し、ページが表示されなくなる。
また、今回の問題と関係があるかわからないが、adminを開こうとしても同様のエラーメッセージが発生する。
発生している問題・エラーメッセージ
エラーメッセージ Server Error(500)
該当のソースコード
Python3
1import os 2 3# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 4BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 5 6 7# Quick-start development settings - unsuitable for production 8# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ 9 10# SECURITY WARNING: keep the secret key used in production secret! 11SECRET_KEY = 'XXXXXX' 12 13# SECURITY WARNING: don't run with debug turned on in production! 14DEBUG = False 15try: 16 from config.local_settings import * 17except ImportError: 18 pass 19 20 21 22ALLOWED_HOSTS = ["fu-te-site.herokuapp.com"] 23 24 25# Application definition 26 27INSTALLED_APPS = [ 28 'django.contrib.admin', 29 'django.contrib.auth', 30 'django.contrib.contenttypes', 31 'django.contrib.sessions', 32 'django.contrib.messages', 33 'django.contrib.staticfiles', 34 'blogpost.apps.BlogpostConfig', 35 'gunicorn', 36] 37 38MIDDLEWARE = [ 39 'django.middleware.security.SecurityMiddleware', 40 'django.contrib.sessions.middleware.SessionMiddleware', 41 'django.middleware.common.CommonMiddleware', 42 'django.middleware.csrf.CsrfViewMiddleware', 43 'django.contrib.auth.middleware.AuthenticationMiddleware', 44 'django.contrib.messages.middleware.MessageMiddleware', 45 'django.middleware.clickjacking.XFrameOptionsMiddleware', 46 'whitenoise.middleware.WhiteNoiseMiddleware', 47 'django.middleware.security.SecurityMiddleware', 48] 49 50ROOT_URLCONF = 'blogproject.urls' 51 52TEMPLATES = [ 53 { 54 'BACKEND': 'django.template.backends.django.DjangoTemplates', 55 'DIRS': [BASE_DIR, 'templates'], 56 'APP_DIRS': True, 57 'OPTIONS': { 58 'context_processors': [ 59 'django.template.context_processors.debug', 60 'django.template.context_processors.request', 61 'django.contrib.auth.context_processors.auth', 62 'django.contrib.messages.context_processors.messages', 63 ], 64 }, 65 }, 66] 67 68WSGI_APPLICATION = 'blogproject.wsgi.application' 69 70 71# Database 72# https://docs.djangoproject.com/en/3.0/ref/settings/#databases 73 74DATABASES = { 75 'default': { 76 'ENGINE': 'django.db.backends.sqlite3', 77 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 78 } 79} 80 81 82# Password validation 83# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators 84 85AUTH_PASSWORD_VALIDATORS = [ 86 { 87 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 88 }, 89 { 90 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 91 }, 92 { 93 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 94 }, 95 { 96 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 97 }, 98] 99 100 101# Internationalization 102# https://docs.djangoproject.com/en/3.0/topics/i18n/ 103 104LANGUAGE_CODE = 'ja' 105 106TIME_ZONE = 'Asia/Tokyo' 107 108USE_I18N = True 109 110USE_L10N = True 111 112USE_TZ = True 113 114 115# Simplified static file serving. 116# https://warehouse.python.org/project/whitenoise/ 117 118STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' 119 120# Static files (CSS, JavaScript, Images) 121# https://docs.djangoproject.com/en/3.0/howto/static-files/ 122STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # 追記 123STATIC_URL = '/static/' 124 125STATICFILES_DIRS = ( 126 os.path.join(BASE_DIR, 'static'), 127) 128 129 130 131import dj_database_url 132db_from_env = dj_database_url.config() 133DATABASES['default'].update(db_from_env) 134 135 136if not DEBUG: 137 import django_heroku 138 django_heroku.settings(locals(),staticfiles= False)
html
1{% load static %} 2<!DOCTYPE html> 3<html lang="en"> 4 5<head> 6 <meta charset="utf-8" /> 7 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> 8 <meta name="description" content="" /> 9 <meta name="author" content="" /> 10 <title>none</title> 11 <!-- Favicon--> 12 <link rel="icon" type="image/x-icon" href="{% static 'blogproject/assets/favicon.ico'}" /> 13 <!-- Font Awesome icons (free version)--> 14 <script src="https://use.fontawesome.com/releases/v5.15.3/js/all.js" crossorigin="anonymous"></script> 15 <!-- Simple line icons--> 16 <link href="https://cdnjs.cloudflare.com/ajax/libs/simple-line-icons/2.5.5/css/simple-line-icons.min.css" rel="stylesheet" /> 17 <!-- Google fonts--> 18 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css" /> 19 <!-- Core theme CSS (includes Bootstrap)--> 20 <link href="{% static 'blogproject/css/styles.css'%}" rel="stylesheet" /> 21</head>
試したこと
他の質問、サイトを参考にSTATIC_ROOT,URL,whitenoiseの設定を試したが解決に至らなかった。
補足情報(FW/ツールのバージョンなど)
Django3.2.4
Macbookpro Big Sur 11.5
あなたの回答
tips
プレビュー