好的,所以我一定完全错过了这里的东西......
为澄清起见,这是 Django 1.9.7
我的模型有一个字段:
prop_image = models.ImageField(upload_to=settings.MEDIA_ROOT, null = True, blank = True, max_length=500)
我已经导入了设置,所以我认为问题不在这里。
也就是说,我的设置有:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_URL = '/perform/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'perform/media')
媒体存储在:
PerformPy/perform/media/
(perform
是应用名称)
BASE_DIR 是根目录的绝对路径PerformPy
。
我正在使用的 urls.py 是(我相信这就是问题所在):
urlpatterns = [ ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
最后,我在模板中尝试使用的行index.html
如下,全部带有 404 错误(除非另有说明):
- src="/perform/media/{{prop.prop_image | filename }}" (使用模板标签过滤掉文件名)
- src="{{MEDIA_URL}}/{{prop.prop_image | 文件名}}"
- src="{{MEDIA_ROOT}}/{{prop.prop_image | 文件名}}"
- src="{{MEDIA_ROOT}}/{{prop.prop_image.url}}" [ERR_NAME_NOT_RESOLVED]
- src="{{MEDIA_URL}}/{{prop.prop_image.url}}" [ERR_NAME_NOT_RESOLVED]
- src="{{prop.prop_image.url}}
- src="/perform/media/{{prop.prop_image.url}}
- src="{{prop.prop_image}} [不允许使用本地资源]
- src="/{{prop.prop_image}}"
- src="执行/媒体/{{prop.prop_image}}"
- src="执行/媒体/{{prop.prop_image_url}}"
任何想法或建议都会非常有帮助!我对此很陌生,所以很可能我犯了一个愚蠢的错误。