0

我将我的 base_settings.py 设置为DEBUG = False,在我的设置结束时,我有以下代码:

    if not DEBUG:
    AWS_STORAGE_BUCKET_NAME = 'bucket_name'
    STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
    S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME
    STATIC_URL = S3_URL

在我的 local_settings.py 中,我设置了DEBUG = True.

我的设置模块的init .py 文件:

from .base import *

try:
    from .local import *
except ImportError:
    pass

出于某种原因,在本地工作时,尽管我没有设置 DEBUG,但它仍会尝试从 S3 中提取静态文件。我想到的原因是它首先读取基本文件并在实际导入 local_settings.py 之前测试 DEBUG。所以我的问题是:我该如何解决这个问题,所以 s3 文件只用于生产?

4

1 回答 1

1

假设您在本地有一个 .local 包,请尝试删除 .local 导入周围的 try/except 并查看是否引发任何错误。

此外,如果您在 base 中将 DEBUG 设置为 TRUE,并在 .locals 中设置您的 URLS 和存储,然后将 DEBUG 设置为 false,则您需要在 .locals 中重置您的 URLS 和存储。

.locals 是在你的基础文件已经被导入之后被导入的,所以你的行:

if not DEBUG:

…在导入期间评估为 TRUE,将所有内容设置为使用 S3。

于 2013-02-27T08:22:25.547 回答