在开发环境中本地提供 django 媒体文件
Serve django media files locally in Development environment
我使用 Amazon S3 使用 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')
我在网址中添加了这个:
urlpatterns = [
# usual urls...
]
if not settings.USE_S3:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
结果是 static
方法 returns 空数组,如果它的第一个参数里面有 'http'
,这意味着我不能用它来从我的服务器提供服务。
如果您遇到同样的问题并解决了它,或者您知道在哪里可以找到解决方案,请告诉我。
我的错误,我忘记了 urls 模式是相对的,所以我不得不改变
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
对此:
urlpatterns += static('/media/', document_root=settings.MEDIA_ROOT)`
我使用 Amazon S3 使用 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')
我在网址中添加了这个:
urlpatterns = [
# usual urls...
]
if not settings.USE_S3:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
结果是 static
方法 returns 空数组,如果它的第一个参数里面有 'http'
,这意味着我不能用它来从我的服务器提供服务。
如果您遇到同样的问题并解决了它,或者您知道在哪里可以找到解决方案,请告诉我。
我的错误,我忘记了 urls 模式是相对的,所以我不得不改变
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
对此:
urlpatterns += static('/media/', document_root=settings.MEDIA_ROOT)`