使用Django开发服务器时Debug为False,媒体文件显示404错误
Django部署到cPanel前的静态/媒体文件配置测试建议
静态文件配置调整
cPanel环境下,默认的静态文件配置仅能满足本地测试,需要新增STATIC_ROOT指定收集所有静态文件的目录,这样部署时才能让web服务器正确读取静态资源:STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')部署前必须执行命令收集静态文件:
python manage.py collectstatic执行后所有分散的静态文件会被统一复制到
STATIC_ROOT目录,后续需要在cPanel的站点配置中把静态资源访问路径指向该目录。媒体文件配置优化
当前的MEDIA_ROOT和MEDIA_URL本地测试可用,但部署到cPanel需要补充两项操作:- 在项目根路由文件
urls.py中添加媒体文件的访问路由:from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # 你的业务路由配置 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) - 确保cPanel环境中
media目录拥有可读写权限,避免用户上传文件时出现权限错误。
- 在项目根路由文件
部署前必改的核心配置
本地测试的DEBUG模式不能直接用于生产环境,必须修改以下配置:DEBUG = False ALLOWED_HOSTS = ['你的域名', 'www.你的域名']同时可以打印
BASE_DIR确认路径是否符合cPanel环境的实际目录结构,避免路径错误导致静态/媒体文件无法读取。
原始settings.py配置
STATIC_URL = '/static/' MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ]
内容的提问来源于stack exchange,提问作者leroy mapunzwana
相关产品推荐
相关产品推荐

