簡體   English   中英

在開發環境中本地提供 django 媒體文件

[英]Serve django media files locally in Development environment

我使用 Amazon S3 在生產中使用 boto3 package 存儲我的媒體文件,但我不想為本地開發環境創建存儲桶。 所以我想知道是否有辦法在本地提供媒體文件。

我的存儲相關設置:

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方法的第一個參數內部包含'http' ,則該方法返回空數組,這意味着我不能將它用於從我的服務器提供服務。

如果您遇到同樣的問題並解決了它,或者您知道在哪里查找解決方案,請告訴我。

我的錯誤,我忘記了 urls 模式是相對的,所以我只需要改變

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

對此:

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

暫無
暫無

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

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