配置Django的压缩机与远程存储(django的存储 - Amazon S3的)(Configu

2019-09-16 17:39发布

我的场景

我使用Django的存储有通过亚马逊S3服务的文件。 这意味着,当我做./manage.py collectstatic,该文件将被保存在我的亚马逊桶,而不是本地文件系统上。

要压缩我做的文件:“./manage.py压缩”,它赋予这个错误:

错误:渲染过程中出现错误:[错误2]没有这样的文件或目录:U“/家庭/用户/项目/静态/更少/ bootstrap.less”

由于该文件是不是在我的本地文件系统中。

“由于Django的压缩机处理文件的方式,它需要被处理的文件(在{%压缩%}块) 在本地文件系统高速缓存中是可用的。” http://django_compressor.readthedocs.org/en/最新/远程存储器/

我如何使用Django存储Django的压缩工作(Amazon S3的)?

我已经试过到目前为止做

让collectstatic保存文件本地和S3。 因为它提到在Django的压缩机页的文件中提到,应该有一些好的办法做到这一点。 怎么样?

组态

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}'),
)

Answer 1:

我认为唯一的设定,你缺少的是COMPRESS_ROOT

我有Django的压缩机与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


文章来源: Configuring django-compressor with remote storage (django-storage - amazon s3)