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

PythonAnywhere部署Django后后台无法访问media目录下MP3文件求解决建议

问题原因&解决步骤

  1. 修正FileField存储的路径格式
    你当前数据库存储的是服务器本地绝对路径,Django的FileField默认仅需存储相对于MEDIA_ROOT的相对路径,生成访问链接时会自动拼接MEDIA_URL前缀。需要调整你存储MP3文件的逻辑:生成MP3文件后不要直接把绝对路径赋值给FileField字段,改为使用Django内置的文件存储逻辑处理,比如将文件对象直接传入字段,让Django自动生成相对路径,修正后数据库内存储的路径应为voices/test.mp3。

  2. 在PythonAnywhere面板配置Media文件映射
    你已经配置了静态文件的映射规则,但还需要单独配置Media文件的映射:

  • 进入PythonAnywhere的Web应用管理页,找到「Static files」配置区
  • 新增一条规则:
    • URL填写/media/
    • Directory填写你的media文件夹绝对路径:/home/myappname/myappname.pythonanywhere.com/media
  • 保存后点击Reload重载你的Web应用。
  1. 验证访问链接
    配置生效后,你的MP3文件公开访问地址应为https://你的域名/media/voices/test.mp3,你之前看到的带/user/myappname/files/前缀的链接是PythonAnywhere后台文件管理的私有链接,必须登录PythonAnywhere账号才能访问,不能作为公开资源链接使用。

你现有的MEDIA_ROOT、MEDIA_URL配置本身是正确的,只要确认BASE_DIR指向的路径为/home/myappname/myappname.pythonanywhere.com即可。

内容的提问来源于stack exchange,提问作者Nobuaki Sasaki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:06:05