在多服务器设置中使用django存储和django压缩器的正确方法
我试图弄清楚如何在多服务器设置中使用django storages redux和django compressor。所有静态文件都应该使用boto存储在AmazonS3上 到目前为止我得到了什么 使用的图书馆:在多服务器设置中使用django存储和django压缩器的正确方法,django,amazon-s3,boto,django-storage,django-compressor,Django,Amazon S3,Boto,Django Storage,Django Compressor,我试图弄清楚如何在多服务器设置中使用django storages redux和django compressor。所有静态文件都应该使用boto存储在AmazonS3上 到目前为止我得到了什么 使用的图书馆: boto==2.38.0 boto3==1.2.3 botocore==1.3.18 Django==1.7.7 django-compressor==1.6 django-storages-redux==1.3 重要设置: S3_ACCESS_KEY_ID = "-- REMOVED
boto==2.38.0
boto3==1.2.3
botocore==1.3.18
Django==1.7.7
django-compressor==1.6
django-storages-redux==1.3
重要设置:
S3_ACCESS_KEY_ID = "-- REMOVED --"
S3_SECRET_ACCESS_KEY = "-- REMOVED --"
S3_DOMAINURL_FRT = "image.mydomain.com"
S3_BUCKETNAME_FRT = "image.mydomain.com"
AWS_ACCESS_KEY_ID = S3_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY = S3_SECRET_ACCESS_KEY
AWS_STORAGE_BUCKET_NAME = S3_BUCKETNAME_FRT
AWS_S3_CUSTOM_DOMAIN = S3_DOMAINURL_FRT
AWS_QUERYSTRING_AUTH = False
AWS_S3_FILE_OVERWRITE = False
AWS_S3_SECURE_URLS = False
AWS_S3_USE_SSL = False
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'site-static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
)
COMPRESS_STORAGE = STATICFILES_STORAGE = 'project.storage.CachedS3BotoStorage'
STATIC_URL = COMPRESS_URL = 'http://%s/' % S3_DOMAINURL_FRT
COMPRESS_OFFLINE = True
COMPRESS_OUTPUT_DIR = 'cache'
“项目存储”代码:
问题
因为我们有多台服务器,所以我们脱机使用COMPRESS_并运行django COMPRESS的COMPRESS命令。此命令在运行该命令的服务器上本地生成文件。此外,还会在本地生成manifest.json。另外,由于我们使用django存储,本地文件被复制到S3。舱单也是。但现在,当尝试从另一个Web服务器运行django时,如果这些文件不存在,我们会遇到如下错误:
You have offline compression enabled but key "677803469038e2efb349aad5ddc60c39" is missing from offline manifest. You may need to run "python manage.py compress".
我们如何在一台服务器上压缩文件,并通过链接到S3存储桶让所有其他服务器使用这些文件?我认为我们必须以某种方式将manifest.json文件发送到所有其他服务器本地文件系统
提前感谢您的帮助 我认为您希望在此应用程序中将
COMPRESS\u CSS\u HASHING\u METHOD
设置为'content'
。
You have offline compression enabled but key "677803469038e2efb349aad5ddc60c39" is missing from offline manifest. You may need to run "python manage.py compress".