媒体文件不在 cpanel 上的 django 应用程序中提供

Dog*_*San 3 python django web-deployment

当设置调试模式时,我有一个 django 应用程序在 cpanel 上运行(我不确定是否是我的 django 应用程序或 cpanel 服务器的问题)True。我可以看到所有媒体文件,例如个人资料图片或pdf文件等。但是当设置调试模式时False,您无法在应用程序上看到媒体文件。这是我在settings.py文件上的配置。

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
    ]
STATIC_URL = '/static/'
STATIC_ROOT = '<app-directory>/public_html/static'

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

# Crispy Form Theme - Bootstrap 3
CRISPY_TEMPLATE_PACK = 'bootstrap3'

# For Bootstrap 3, change error alert to 'danger'
from django.contrib import messages
MESSAGE_TAGS = {
    messages.ERROR: 'danger'
}
Run Code Online (Sandbox Code Playgroud)

Naz*_*ter 5

要部署生产服务器,您需要设置 3 件事

  1. 停用 DEBUG 配置:

调试=假

这会禁用所有额外的开发功能。

  1. 在设置文件中定义静态根目录:

STATIC_ROOT = '/this/is/a/path/to/statics'

这表明所有静态文件应保存在哪里。

  1. 运行命令收集所有静态文件:

python 管理.py 收集静态

这会将所有静态文件保存在配置的目录中STATIC_ROOT

部署的官方文档: https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/#static-root-and-static-url