【发布时间】:2012-12-16 12:15:38
【问题描述】:
我在从我的 Django 应用程序中为用户上传的文件提供服务时遇到了一些问题:
来自models.py:
class Picture (models.Model):
title = models.CharField(max_length=48)
date_added = models.DateTimeField(auto_now=True)
content = models.ImageField(upload_to='pictures')
文件从 Django 管理员上传到 user_res/pictures/ 文件夹。
来自项目的settings.py:
MEDIA_ROOT = 'user_res'
MEDIA_URL = '/user_res/'
STATIC_ROOT = ''
STATIC_URL = '/static/'
每次我尝试引用静态资源(即 css 或 js 文件)时,使用诸如
之类的 URL 一切正常http://localhost:8000/static/<subfolder>/main.css.
但是,我无法访问用户上传的文件(这些文件是由管理界面在 user_res/pictures 文件夹中使用相对 URL 创建的,例如
user_res/pictures/test.jpg
URL 是使用 Django 图片模型可调用的这行代码动态创建的:
return '<img src="{}"/>'.format(self.content.url)
我在 url.py 文件中没有用于静态或媒体文件的专用 url-s。
有人知道如何让 Django 为媒体文件提供服务吗?我知道对于实时环境,我需要配置一个 http 服务器来为该特定目录提供服务,但现在我想维护一个轻量级开发套件。
谢谢。
【问题讨论】: