Django:提供管理媒体文件

4 投票
1 回答
1989 浏览
提问于 2025-04-15 16:19

我想从另一个域名(当前域名的子域名)提供静态文件。为了提供所有的媒体文件,我使用了以下设置:

MEDIA_URL = 'http://media.bud-inform.co.ua/'

所以当我在模板中使用

{{ MEDIA_URL }}

时,它会被上面的设置替换掉。现在我想从同一个子域名提供管理员的媒体文件,我把设置改成了这样:

ADMIN_MEDIA_PREFIX = 'http://media.bud-inform.co.ua/admin_media/',

我本以为所有来自我管理员网站的媒体请求都会指向这个网址……但实际上并不是这样,我仍然看到CSS的路径是这样的:

http://bud-inform.co.ua/media/css/login.css

你能建议我如何正确提供管理员的媒体文件吗?

1 个回答

2

MEDIA_URLADMIN_MEDIA_PREFIX是两个不同的东西。一个是你自己媒体文件的位置,另一个是Django管理系统的媒体文件的位置。

你需要确保ADMIN_MEDIA_PREFIX指向一个你实际提供管理媒体文件的地方。Django不会自动帮你处理这一步。

Django的管理媒体文件在django/contrib/admin/media/这个路径下。你需要把这个文件夹复制或者创建一个链接到一个可以公开访问的地方,然后把ADMIN_MEDIA_PREFIX设置为你放置它的地方。

撰写回答