2013-10-13 1 views
4

J'essaye de configurer Django Compressor avec Amazon s3 et SASS, mais je rencontre ce problème.Django Compressor, S3 et SASS, fichiers compilés non téléchargés

Donc, ce sont les paramètres de compresseur django:

########## 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 

C'est la partie du modèle où les fichiers sont appelés

{% 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 %} 

Le problème est que les fichiers compressés ne sont pas téléchargés , puisqu'ils sont placés dans un dossier dédié (seuls les fichiers dans les ressources sont téléchargés)

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

Ai-je fait quelque chose de mal?

Répondre

2

fixe ainsi:

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 

I ajouté AWS_QUERYSTRING_AUTH = False parce qu'il a été crée une URL différente pour chaque rechargement de la page.

+0

Que fait le CachedS3BotoStorage? Et comment cela a-t-il corrigé? – Alper

+0

Je ne me souviens plus où j'ai reçu le CachedS3BotoStorage, mais je pense que c'était à partir d'ici http://jeanphix.me/2012/02/08/django-heroku-compressor-storages/ :) – patrick

Questions connexes