在开发环境中本地提供django媒体文件

在开发环境中本地提供django媒体文件,django,testing,amazon-s3,media,local,Django,Testing,Amazon S3,Media,Local,我使用AmazonS3在生产中使用boto3包存储媒体文件,但我不想为本地开发环境创建一个存储桶。所以我想知道是否有办法在本地提供媒体文件 我的存储相关设置: if USE_S3: # aws settings AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID') AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') AWS_STO

我使用AmazonS3在生产中使用boto3包存储媒体文件,但我不想为本地开发环境创建一个存储桶。所以我想知道是否有办法在本地提供媒体文件

我的存储相关设置:

if USE_S3:
    # aws settings
    AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
    AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')

    AWS_STORAGE_BUCKET_NAME = os.environ.get('BUCKET_NAME')
    AWS_S3_REGION_NAME = os.environ.get('BUCKET_REGION')
    DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

STATIC_URL = '/django_static/'
STATIC_ROOT = os.environ.get('DJANGO_STATIC_ROOT')

MEDIA_URL = '/media/'
if not USE_S3:
    MEDIA_URL = "http://localhost:8000" + MEDIA_URL
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
在URL中,我添加了以下内容:

urlpatterns = [
    # usual urls...
]

if not settings.USE_S3:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
结果是,如果
static
方法的第一个参数中包含
'http'
,则该方法返回空数组,这意味着我不能使用它从服务器提供服务


如果您遇到了相同的问题并解决了它,或者您知道在哪里可以找到解决方案,请告诉我。

我的错误是,我忘记了URL模式是相对的,所以我不得不更改

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
为此:

urlpatterns += static('/media/', document_root=settings.MEDIA_ROOT)`