簡體   English   中英

Django提供靜態文件

[英]Django serving static files

我正在嘗試將django安裝程序配置為在調試和生產模式下提供靜態文件。 我希望在生產模式下使用S3,在調試模式下使用本地安裝。 我有以下設置:

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 文件夾/images/在S3中存在,但是對於我的本地文件夾來說,它應該是/static/images/ 我試圖在最后將S3 URL設置為/static/ ,但是它不起作用。 我還有什么想念的嗎? 如何獲取CSS圖片網址以重定向到/static/

我通讀了s3boto.py的源代碼。 您可以設置以下屬性:

AWS_LOCATION = "static"

該變量在您的s3中創建一個static文件夾。 其他屬性應為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM