Django-tinymce не загружается на Amazon S3, несмотря на загрузку всех других статических файлов - PullRequest
2 голосов
/ 24 мая 2019

Я использовал это руководство

https://www.codingforentrepreneurs.com/blog/s3-static-media-files-for-django/

, чтобы использовать S3 для статических файлов моего сайта.

У меня TinyMCE работал локально, но как только я начал использовать S3 для своих файлов, это единственная часть, которая не загружается, и виджеты, которые ее используют, просто не отображаются.

Inна консоли Chrome Dev Tools я получаю следующую ошибку:

Failed to load resource: the server responded with a status of 403 (Forbidden)
tiny_mce.js?AWSAccessKeyId=A[ACCESKEY]&Signature=Ze0U3pre28m%2FD9x2ftvTQkXl0OI%3D&Expires=1558648014:1 

Failed to load: https://conucos-bucket.s3.amazonaws.com/static/assets/js/tiny_mce/plugins/autosave/editor_plugin.js

На S3 я сделал все файлы общедоступными в Bucket Public и получил отказ в доступе для 2 файлов в TinyMCE

static/assets/js/tiny_mce/plugins/media/langs/dv_dlg.js
/conucos-bucket/
static/assets/js/tiny_mce/plugins/searchreplace/langs/mk_dlg.js
/conucos-bucket/

А остальные успешны.

Ниже приведен мой файл конфигурации, который я импортирую в settings.py

import datetime

AWS_GROUP_NAME = #REDACTED
AWS_USERNAME = #REDACTED
AWS_ACCESS_KEY_ID = #REDACTED
AWS_SECRET_ACCESS_KEY = #REDACTED

AWS_FILE_EXPIRE = 200
AWS_PRELOAD_METADATA = True
AWS_QUERYSTRING_AUTH = True

DEFAULT_FILE_STORAGE = 'conucos.aws.utils.MediaRootS3BotoStorage'
STATICFILES_STORAGE = 'conucos.aws.utils.StaticRootS3BotoStorage'
AWS_STORAGE_BUCKET_NAME = 'conucos-bucket'
S3DIRECT_REGION = 'us-east-1'
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/'

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()), ),
}

AWS_QUERYSTRING_AUTH = True


Это моя статическая нагрузка на шаблоны, использующие TinyMCE

    {% load static %}
    <script type="text/javascript" src="{% static "assets/js/tiny_mce/tiny_mce.js" %}"></script>
    <script type="text/javascript" src="{% static "assets/js/tiny_mce/textareas.js" %}"></script> 

Как мне загрузить TinyMCE?Любая помощь приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...