【问题标题】:serving media files in Django for Production在 Django 中为生产服务提供媒体文件
【发布时间】:2022-01-04 23:46:45
【问题描述】:

我想在我的 Django 项目中提供所有类型的媒体文件我使用 Whitenoise 来服务器静态文件和静态文件运行良好,但我在提供用户上传的图像时遇到问题(我使用的是 Linux 共享托管 Cpanel) 目录结构

Project_name
App_1
App_2
Staticfiles (that are collected via collectstatic cmd)
manage.py
passenger_wsgi.py

这里是项目的settings.py

STATIC_ROOT = BASE_DIR / 'staticfiles'
STATIC_URL = '/static/'
MEDIA_URL = ''
STATICFILES_DIRS =[
    BASE_DIR/ 'static'
]
 MEDIA_ROOT = BASE_DIR / 'staticfiles/images'

和文件 urls.py

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

【问题讨论】:

    标签: django django-views django-templates collectstatic whitenoise


    【解决方案1】:

    Whitenoise 仅在启动时检查静态文件,因此不会看到应用启动后添加的文件。

    因此,Whitenose 不适合提供用户上传的媒体文件。

    请查看 Whitenose 官方文档。 http://whitenoise.evans.io/en/latest/django.html#serving-media-files

    【讨论】:

    • 除了这种白噪声还有其他方法可以访问和加载媒体文件吗?
    • Whitenoise 文档对此进行了描述。 For all these reasons, it’s much better to store files on a separate dedicated storage service and serve them to users from there. The django-storages library provides many options e.g. Amazon S3, Azure Storage, and Rackspace CloudFiles.
    猜你喜欢
    • 1970-01-01
    • 2014-05-15
    • 2023-04-08
    • 2019-12-12
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2016-04-15
    相关资源
    最近更新 更多