媒体文件未在 Debug False 上显示

Media files not showing on Debug False

我刚刚用 pythonanywhere 部署了一个站点,当我将 DEBUG 模式设置为 False 时,我的媒体图像消失了,找不到我的媒体文件夹的路径。我在问自己是什么导致了这个问题,我该如何解决它?

以下是我配置设置的方式:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

urls.py

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

您看到的行为是设计使然,Django 在生产模式下不提供静态文件。使用 Python 服务许多可能非常大的静态文件会给服务器带来很大压力,而任何常见服务器都可以轻松处理。

因此您需要自己使用 Apache 或 nginx 为它们提供服务:https://docs.djangoproject.com/en/1.10/howto/static-files/deployment/

找到了,使用 pythonanywhere 我必须像这样在静态文件处理程序上设置媒体:

路径: /media/

目录: /home/<myusername>/<myproject>/media

然后将DEBUG设置为False后重新加载域名。