6

私のシナリオ

django-storageを使用して、AmazonS3経由でファイルを提供しています。これは、。/ manage.py collectstaticを実行すると、ファイルがローカルファイルシステムではなく、amazonのバケットに保存されることを意味します。

ファイルを圧縮するには、次のようにします。 "./manage.py compress"これにより、次のエラーが発生します。

エラー:レンダリング中にエラーが発生しました:[Errno 2]そのようなファイルまたはディレクトリはありません:u'/home/user/project/static/less/bootstrap.less'

ファイルが私のローカルファイルシステムにないので。

「DjangoCompressorがファイルを処理する方法により、ローカルファイルシステムキャッシュで使用できるようにするには、ファイルを({%compress%}ブロックで)処理する必要があります。http://django_compressor.readthedocs.org/en/最新/リモートストレージ/

質問

django-compressをdjango-storage(amazon s3)で機能させるにはどうすればよいですか?

私がこれまでにやろうとしたこと

collectstatic保存ファイルをローカルとS3の両方に作成します。django-compressorページのドキュメントで言及されているので、それを行うためのいくつかの良い方法があるはずです。どのように?

構成

STATIC_URL = 'http://mybucket.s3-website-eu-west-1.amazonaws.com/'
STATIC_ROOT = os.path.join(PROJECT_DIR,"static/")
STATICFILES_FINDERS = (
     'django.contrib.staticfiles.finders.FileSystemFinder',
     'django.contrib.staticfiles.finders.AppDirectoriesFinder',
     'compressor.finders.CompressorFinder',
)
STATICFILES_STORAGE = DEFAULT_FILE_STORAGE = 'index.storage.CachedS3BotoStorage' #defined as it is in the documentation

AWS_ACCESS_KEY_ID = "xxx"
AWS_SECRET_ACCESS_KEY = "xxx"
AWS_STORAGE_BUCKET_NAME = "xxxx"

COMPRESS_URL = STATIC_URL
COMPRESS_OFFLINE = True

COMPRESS_PRECOMPILERS = (
    ('text/less', 'lessc {infile} {outfile}'),
)
4

1 に答える 1

8

足りない設定は。だけだと思いますCOMPRESS_ROOT

私はdjango-compressorがS3で非常にうまく機能しています。これが私の設定です:

DEFAULT_FILE_STORAGE = 'g2k_utils.s3storage.S3BotoStorage'
STATICFILES_STORAGE = DEFAULT_FILE_STORAGE
COMPRESS_ROOT = '/home/user/website/static/' # Where my SCSS, JS files are stored
COMPRESS_STORAGE = DEFAULT_FILE_STORAGE 
COMPRESS_OFFLINE = True
于 2012-05-30T23:20:06.867 に答える