2014-06-05 247 views
0

我正在尝试配置我的django安装程序以在调试和生产模式下提供静态文件。我希望生产模式是从S3,并在调试模式下从本地安装。我的设置如下:Django提供静态文件

COMPRESS_ENABLED = not DEBUG 
COMPRESS_PARSER = 'compressor.parser.LxmlParser' 
COMPRESS_CSS_FILTERS = ['compressor.filters.cssmin.CSSMinFilter'] 
COMPRESS_JS_FILTERS = ['compressor.filters.jsmin.JSMinFilter'] 
COMPRESS_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
DEFAULT_FILE_STORAGE = 'libs.storages.S3Storage.S3Storage' 

AWS_ACCESS_KEY_ID = # Key 
AWS_SECRET_ACCESS_KEY = # Secret 

AWS_STORAGE_BUCKET_NAME = # Bucket 

AWS_QUERYSTRING_AUTH = False 

MEDIA_URL = '/media/' 
if COMPRESS_ENABLED: 
    from boto.s3.connection import SubdomainCallingFormat 
    AWS_S3_CALLING_FORMAT = SubdomainCallingFormat() 

    COMPRESS_OFFLINE = True 
    STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

    # Path for all static files 
    STATIC_URL = 'https://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME 
    STATIC_ROOT = STATIC_URL 
else: 
    STATIC_ROOT = path.join(PROJECT_ROOT, '..', 'assets') 
    STATIC_URL = '/static/' 

我能够让所有的东西都能工作,除了一件我无法弄清楚的小东西。通常情况下,我的CSS文件将有一个后台网址为/images/logo.png。 S3中存在文件夹/images/,但对于我的本地文件夹,它需要为/static/images/。我试图在最后设置S3 URL为/static/,但它不起作用。还有什么我失踪?如何获取CSS图像网址重定向到/static/

回答

0

我通过s3boto.py的源代码阅读。您可以设置以下属性:

AWS_LOCATION = "static" 

该变量会在您的S3一个static文件夹。其他性质应该是:

STATIC_URL = 'https://%s.s3.amazonaws.com/static/' % AWS_STORAGE_BUCKET_NAME 
STATIC_ROOT = STATIC_URL