You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DRF项目部署到PythonAnywhere后访问上传图片报404资源未找到错误求解

DRF项目部署PythonAnywhere媒体文件404问题解决步骤
  • 修正settings.py配置顺序
    你的原有配置中BASE_DIR的定义位置在STATIC_ROOT、MEDIA_ROOT之后,会导致路径拼接时BASE_DIR未定义,路径解析错误。请调整为如下顺序:
# 优先定义BASE_DIR
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

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

MEDIA_URL = '/pictures/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploaded_pictures')
  • 核对PythonAnywhere静态文件映射配置
    进入PythonAnywhere Web管理页,在Static files配置区添加/确认如下配置:
    • URL栏填入/pictures/
    • Directory栏填入你项目中uploaded_pictures文件夹的绝对路径,格式为/home/你的PythonAnywhere用户名/你的项目文件夹名/uploaded_pictures
      配置完成后点击Reload重载Web应用生效。
  • 补充urls.py媒体路由配置
    Django生产环境默认不提供媒体文件服务,你可以在urls.py中补充路由规则适配:
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api-auth/', include('rest_framework.urls')),
    path('api/', include('gardesh.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  • 验证文件存储位置
    进入PythonAnywhere文件管理页,打开uploaded_pictures文件夹,确认user/prof、user/cover子文件夹存在,且你上传的图片文件存储在对应目录下。如果是配置顺序错误前上传的文件,会存储到错误路径,需要重新上传测试。

内容的提问来源于stack exchange,提问作者morteza zarrin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 00:00:03