500 Ошибка сервера в Heroku после изменения настроек Django - журнал ошибок отсутствует
Итак, я пытался добавить несколько функций в мои настройки Django, следуя этой статье здесь:
http://bookofstranger.com/django-compressor-with-s3-and-cloudfront/
Я уже успешно настроил свой сайт с помощью AWS и Cloudfront, обслуживающих статические и мультимедийные файлы. Я просто пытался добавить django-compressor
сжать файлы и ускорить работу сайта.
Я понятия не имею, в чем проблема, поскольку я просмотрел логи heroku, и все, что я могу видеть, это то, что был запрос GET с ошибкой 500 серверов - больше ничего.
На моем локальном сервере --- сайт загружается нормально после того, как я запустил collectstatic. есть ошибка, которую я вижу в строке cmd:
Traceback (most recent call last):
File "C:\Users\crstu\AppData\Local\Programs\Python\Python36-32\lib\socketserver.py", line 639, in process_request_thread
self.finish_request(request, client_address)
File "C:\Users\crstu\AppData\Local\Programs\Python\Python36-32\lib\socketserver.py", line 361, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Users\crstu\AppData\Local\Programs\Python\Python36-32\lib\socketserver.py", line 696, in __init__
self.handle()
File "C:\Users\crstu\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\core\servers\basehttp.py", line 154, in handle
handler.run(self.server.get_app())
File "C:\Users\crstu\AppData\Local\Programs\Python\Python36-32\lib\wsgiref\handlers.py", line 144, in run
self.close()
File "C:\Users\crstu\AppData\Local\Programs\Python\Python36-32\lib\wsgiref\simple_server.py", line 35, in close
self.status.split(' ',1)[0], self.bytes_sent
AttributeError: 'NoneType' object has no attribute 'split'
Я публикую свой файл настроек ниже (по крайней мере, соответствующие части, которые я добавил или изменил):
#This will make sure that the file URL does not have unnecessary parameters like your access key.
AWS_ACCESS_KEY_ID = config('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = config('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = config('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = 'XXXXXXXXXXXX.cloudfront.net'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'static'
AWS_QUERYSTRING_AUTH = False
AWS_DEFAULT_ACL = "public-read" # to make sure all your files gives read only access to the files
AWS_HEADERS = { # see http://developer.yahoo.com/performance/rules.html#expires
'Expires': 'Thu, 31 Dec 2099 20:00:00 GMT',
'Cache-Control': 'max-age=94608000',
}
CLOUDFRONT_DOMAIN = 'XXXXXXXXXXXXXXXXXXX'
CLOUDFRONT_ID = 'YYYYYYYYYYYYYYYY'
AWS_IS_GZIPPED = True
GZIP_CONTENT_TYPES = (
'text/css',
'application/javascript',
'application/x-javascript',
'text/javascript',
'application/vnd.ms-fontobject',
'application/font-sfnt',
'application/font-woff',
)
STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
#set S3 as the place to store your files.
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
COMPRESS_STORAGE = STATICFILES_STORAGE
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
# Static files (CSS, JavaScript, Images)
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
#media storage settings
MEDIA_URL = 'https://my_bucket.s3.amazonaws.com/media/'
STATIC_URL = 'https://my_bucket.s3.amazonaws.com/static/'
COMPRESS_URL = STATIC_URL
COMPRESS_ROOT = STATIC_ROOT
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sitemaps',
# 'debug_toolbar',
'django.contrib.sites',
'versatileimagefield',
'disqus',
'accounts',
'compressor',
'deals',
'social_django',
'newsletters',
'blog',
'ckeditor',
'storages',
'ckeditor_uploader',
'crispy_forms',
'widget_tweaks',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'dealmazing.middleware.RemoveWWWMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'social_django.middleware.SocialAuthExceptionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'htmlmin.middleware.HtmlMinifyMiddleware',
'htmlmin.middleware.MarkRequestMiddleware',
]
ROOT_URLCONF = 'dealmazing.urls'
HTML_MINIFY = True
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'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',
'social_django.context_processors.backends',
'social_django.context_processors.login_redirect',
'blog.context_processors.posts',
'blog.context_processors.categories',
'deals.context_processors.categories'
],
'libraries':{
'dealmazing_extras': 'templatetags.dealmazing_extras',
},
},
},
]
И я сжимаю файлы, как это с использованием руководящих принципов компрессора Django:
{% load compress%} {% compress css%} CSS ЗДЕСЬ {% endcompress %}
То же самое для файлов JS
Я действительно не знаю, как диагностировать эту вещь - кто-нибудь видит какие-либо проблемы, которые у меня могут быть здесь?