2014-02-02 2 views
0

я использую Джанго-трубопровод + Джанго-хранения и 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:? он работает ... это была проблема, связанная с кешированием: |

ответ

0

Посмотрите на это answer. Возможно, это вопрос порядка (например, django-storages переопределяет ваши настройки). Может быть, попробуйте установить за ведро?

+0

Я уже видел этот ответ, но, честно говоря, я не могу исправить свою проблему ... Я имею в виду, что я не инициализирую экземпляр S3BotoStorage сам ... так что мне делать? (в настоящее время я попытался также импортировать приложение «хранилища» после конвейера и переместить AWS_QUERYSTRING_AUTH, но он все равно не работает) – daveoncode

Смежные вопросы