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を削除して、エラーがスローされるかどうかを確認してください。

また、ベースでDEBUGをTRUEに設定し、URLとストレージを設定してから.localsでDEBUGをfalseに設定する場合は、.localsでURLとストレージをリセットする必要があります。

.localsは、ベースファイルがすでにインポートされた後にインポートされるため、次のようになります。

if not DEBUG:

…インポート中にTRUEに評価され、S3を使用するようにすべてが設定されます。

于 2013-02-27T08:22:25.547 に答える