Font Awesome 4.7 иконки показывают квадраты в моем проекте Django при использовании Amazon S3.
Вопрос, на который я пытаюсь ответить: почему мой CSS работает, а значки Font Awesome не работают?
Локально, когда DEBUG = True
Значки Font Awesome работают:
Когда я установил DEBUG = False:
My settings.py использует настройки корзины Amazon S3:
if DEBUG:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static_cdn')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'media_cdn')
else:
AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']
AWS_FILE_EXPIRE = 200
AWS_PRELOAD_METADATA = True
AWS_QUERYSTRING_AUTH = True
DEFAULT_FILE_STORAGE = 'helloworld.storage_utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 'helloworld.storage_utils.StaticRootS3BotoStorage'
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']
S3DIRECT_REGION = 'us-west-2'
S3_URL = '//%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
MEDIA_URL = '//%s.s3.amazonaws.com/media/' % AWS_STORAGE_BUCKET_NAME
MEDIA_ROOT = MEDIA_URL
STATIC_URL = S3_URL + 'static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
import datetime
two_months = datetime.timedelta(days=61)
date_two_months_later = datetime.date.today() + two_months
expires = date_two_months_later.strftime("%A, %d %B %Y 20:00:00 GMT")
AWS_HEADERS = {
'Expires': expires,
'Cache-Control': 'max-age=%d' % (int(two_months.total_seconds()),),
}
Font Awesome 4.7 значки не работают (показывает квадраты):
В моем контейнере S3 моя папка CSS настроена так же, как и локально:
У меня также есть настройка каталога шрифтов (так же, как и локально)
При ссылке на файлы в моих шаблонах я использую:
<!-- Font awesome -->
<link rel="stylesheet" href="{% static 'helloworld/css/font-awesome.min.css' %}">
Отображаемый HTML-код на отображаемой странице
<link rel="stylesheet" href="https://helloworldbucket939384.s3.amazonaws.com/static/helloworld/css/font-awesome.min.css?AWSAccessKeyId=AKIASGAGAKANCPZIIB4B&Signature=47QKoudsrtfjFUm8UAIA8sjg1Ck%3D&Expires=1576786765">
Новые вопросы
django
Django - это серверная платформа веб-приложений с открытым исходным кодом, написанная на Python. Он разработан для сокращения усилий, необходимых для создания сложных веб-сайтов и веб-приложений, управляемых данными, с особым упором на меньшее количество кода, отсутствие избыточности и более явное, чем неявное.