Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多服务器设置中使用django存储和django压缩器的正确方法_Django_Amazon S3_Boto_Django Storage_Django Compressor - Fatal编程技术网

在多服务器设置中使用django存储和django压缩器的正确方法

在多服务器设置中使用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

我试图弄清楚如何在多服务器设置中使用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 --"
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".