я использую Джанго-трубопровод + Джанго-хранения и S3 бэкенд, но я схожу с ума, пытаясь загрузить мои статические файлы правильно используя {% static %}
бирка. Я прочитал и следовал документы трубопровода: http://django-pipeline.readthedocs.org/en/latest/storages.html#using-with-other-storagesтрубопровод Джанго + Джанго хранения + S3: строка запроса кошмар
И я создал следующий смешанный класс:
from django.contrib.staticfiles.storage import CachedFilesMixin
from pipeline.storage import PipelineMixin
from storages.backends.s3boto import S3BotoStorage
class S3PipelineStorage(PipelineMixin, CachedFilesMixin, S3BotoStorage):
pass
в моих настройках производства файл у меня есть:
AWS_QUERYSTRING_AUTH = False
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
STATICFILES_STORAGE = 'myapp.S3PipelineStorage'
AWS_ACCESS_KEY_ID = 'xxx'
AWS_SECRET_ACCESS_KEY = 'xxx
AWS_STORAGE_BUCKET_NAME = 'mybucket'
from datetime import datetime, timedelta
AWS_HEADERS = {
'Expires': (datetime.now() + timedelta(days=365*10)).strftime('%a, %d %b %Y 00:00:00 GMT')
}
STATIC_URL = 'https://mybucket.s3.amazonaws.com/'
STATIC_ROOT = ''
Когда я бег collectstatic с помощью этих настройки, все работает как следует, но с использованием:
{% static 'path/file.xxx' %}
Я получаю URL-адрес, содержащий auth querystring, несмотря на то, что я установил False
в AWS_QUERYSTRING_AUTH
и, таким образом, мои статические файлы не загружены ... Удалив эту строку запроса, я могу загрузить их пропозиционально. Я также судимый установить «querystring_auth = False
» в myapp.S3PipelineStorage
, но, кажется, игнорируют :(
Почему настройки не соблюдаются? Что может быть эффективным решением для удаления, которые в достаточном количестве? (Я думаю о пользовательском фильтре чтобы лишить его прочь ... но я ненавижу писать такую «заплату») ... и, наконец, если я должен держать эту строку запроса аутентификации, почему не работает Как я могу отлаживать это поведение
EDIT:? он работает ... это была проблема, связанная с кешированием: |
Я уже видел этот ответ, но, честно говоря, я не могу исправить свою проблему ... Я имею в виду, что я не инициализирую экземпляр S3BotoStorage сам ... так что мне делать? (в настоящее время я попытался также импортировать приложение «хранилища» после конвейера и переместить AWS_QUERYSTRING_AUTH, но он все равно не работает) – daveoncode