2013-10-13 1 views
4

Я пытаюсь настроить компрессор Django с помощью Amazon s3 и SASS, но я столкнулся с этой проблемой.Django Compressor, S3 и SASS, скомпилированные файлы не загружены

Таким образом, эти настройки для Джанго компрессора:

########## STATIC FILE CONFIGURATION 
# See: https://docs.djangoproject.com/en/dev/ref/settings/#static-root 
STATIC_ROOT = normpath(join(SITE_ROOT, 'static')) 

# See: https://docs.djangoproject.com/en/dev/ref/settings/#static-url 
STATIC_URL = '/static/' 

# See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_DIRS 
STATICFILES_DIRS = (
    normpath(join(SITE_ROOT, 'assets')), 
) 
COMPRESS_CSS_FILTERS = [ 
    #creates absolute urls from relative ones 
    'compressor.filters.css_default.CssAbsoluteFilter', 
    #css minimizer 
    'compressor.filters.cssmin.CSSMinFilter' 
] 
COMPRESS_OUTPUT_DIR = '' #fixes bug with absolute urls 
COMPRESS_PRECOMPILERS = (
    ('text/x-scss', 'sass --scss --compass {infile} {outfile}'), 
    ('text/x-sass', 'sass --compass {infile} {outfile}'), 
) 
DEFAULT_FILE_STORAGE = 'devfest.storage.CachedS3BotoStorage' 
STATICFILES_STORAGE = DEFAULT_FILE_STORAGE 

AWS_ACCESS_KEY_ID = get_env_setting('AWS_ACCESS_KEY_ID') 
AWS_SECRET_ACCESS_KEY = get_env_setting('AWS_SECRET_ACCESS_KEY') 
AWS_STORAGE_BUCKET_NAME = 'asd' 

COMPRESS_OFFLINE = True 
COMPRESS_ENABLED = True 
COMPRESS_URL = 'https://{}.s3.amazonaws.com/'.format(AWS_STORAGE_BUCKET_NAME) 
COMPRESS_ROOT = STATIC_ROOT 

Это является частью шаблона, где файлы называются

{% compress css %} 
<link rel="stylesheet" href="{% static 'css/normalize.css' %}"> 
<link rel="stylesheet" type="text/x-sass" href="{% static 'css/main.sass' %}"> 
<link rel="stylesheet" href="{% static 'css/font-awesome.min.css' %}"> 
{% endcompress css %} 

Проблема в том, что сжатые файлы не загружаются , поскольку они помещаются в выделенную папку (загружаются только файлы в активах)

» tree static/                                             
static/ 
├── css 
│   └── 46086ae5ebb4.css 
└── manifest.json 

Я сделал что-то не так?

ответ

2

Фиксированные таким образом:

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
STATICFILES_STORAGE = 'devfest.storage.CachedS3BotoStorage' 
COMPRESS_STORAGE = STATICFILES_STORAGE 

AWS_ACCESS_KEY_ID = get_env_setting('AWS_ACCESS_KEY_ID') 
AWS_SECRET_ACCESS_KEY = get_env_setting('AWS_SECRET_ACCESS_KEY') 
AWS_STORAGE_BUCKET_NAME = 'asd' 
AWS_QUERYSTRING_AUTH = False 

COMPRESS_OFFLINE = True 
COMPRESS_URL = 'https://{}.s3.amazonaws.com/'.format(AWS_STORAGE_BUCKET_NAME) 
COMPRESS_ROOT = STATIC_ROOT 

Я добавил AWS_QUERYSTRING_AUTH = False, потому что он создавал различные URL для каждой перезагрузки страницы.

+0

Что делает CachedS3BotoStorage? И как это исправить? – Alper

+0

Я не могу вспомнить, где я получаю CachedS3BotoStorage, но я думаю, что это было отсюда http://jeanphix.me/2012/02/08/django-heroku-compressor-storages/ :) – patrick

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

  • Нет связанных вопросов^_^