django, runserver_plus - 管理员媒体文件从错误路径提供

0 投票
1 回答
858 浏览
提问于 2025-04-15 17:27

下面的配置在我的远程主机上运行得很好(目录结构相同,使用的是相同的Django),所有的管理员媒体文件都能正常提供。

设置

MEDIA_ROOT = '%s/static/' % FS_ROOT
STATIC_DOC_ROOT = '%s/static/' % FS_ROOT
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '%smedia/' % MEDIA_URL

网址

(r'^admin/', include(admin.site.urls)),
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': '%s/static' % FS_ROOT }),
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': '%s/media' % FS_ROOT }),

我在ubuntu 9.10上使用的是django 1.2.0,通过 http://127.0.0.1:8084/ 启动的runserver_plus。

管理员媒体文件存放在我项目根目录的/static/media/下,所有静态文件和文件夹都在/static/下。所有静态文件都能正常提供,只有管理员媒体文件是从Django默认的管理员媒体文件中获取的。我忘记了什么,为什么这只在我的本地环境中影响项目?我尝试过以各种方式覆盖/static/media/的路径,但还是没有效果。

1 个回答

1

这里有两种解决办法:

  1. 你可以按照这个回答的建议,在ADMIN_MEDIA_PREFIX中设置一个主机名。
  2. 或者,你可以使用--adminmedia参数来启动开发服务器,具体可以参考django的文档

撰写回答