Я использую django-summernote для своего текстового поля. Это должно сделать мое текстовое поле похожим на изображение ниже
Теперь статические файлы для вышеупомянутого хранятся в моей корзине AWS S3. Я получаю 403 error
в консоли браузера, и ниже показано, как выглядит мое текстовое поле
Ошибка 403 в консоли выглядит следующим образом
Запрос перекрестного источника заблокирован: та же политика происхождения запрещает чтение удаленного ресурса в https://some_bucket_66d.s3.amazonaws.com/static/summernote/font/summernote.woff?1d9aeaaff0a8939558a45be6cd52cd4c. (причина: отсутствует заголовок CORS S Access-Control-Allow-Origin ’). [Узнать больше]
загружаемый шрифт: загрузка не удалась (семейство шрифтов: "summernote" стиль: нормальный вес: 400 растяжение: 100 индекс src: 1): неверный URI или межсайтовый доступ запрещен источник: https://some_bucket_6d.s3.amazonaws.com/static/summernote/font/summernote.woff?1d9aeaaff0a8939558a45be6cd52cd4c
Итак, чтобы решить эту ошибку, я сделал
pip install django-cors-headers
Добавлено
INSTALLED_APPS = (
...
'corsheaders',
...
]
Добавил его в мое промежуточное ПО
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
...
]
И добавил нижеприведенные 3 ссылки в мой белый список в моих настройках django. Я не знаю, для чего http://127.0.0.1:9000
, но я все равно оставил его там, как это было на странице https://pypi.org/project/django-cors-headers/
CORS_ORIGIN_WHITELIST = [
"https://some_bucket_66d.s3.amazonaws.com", #This is the bucket path as you see in the error above
"http://localhost:8080",
"http://127.0.0.1:9000"
]
Я все еще получаю ту же ошибку даже после внесения ее в белый список в Django Cors, что я делаю неправильно и как я могу это исправить
Попробовал решение, предложенное @jusrDare. Теперь сообщение об ошибке изменилось на следующее
downloadable font: download failed (font-family: "summernote" style:normal weight:400 stretch:100 src index:1): status=2147746065 source: https://some_bucket_66d.s3.amazonaws.com/static/summernote/font/summernote.woff?1d9aeaaff0a8939558a45be6cd52cd4c
Также, если вы не хотите использовать AllowedOrigin как *
, вы можете попробовать следующий код
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://www.your-site.com</AllowedOrigin>
<AllowedOrigin>https://www.your-site.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>
В любом случае, они оба дают мне ту же ошибку