【发布时间】:2014-07-15 11:07:10
【问题描述】:
我正在使用 Django 上传/显示图像。
网站部署在 Heroku 上。
按照this教程,我可以成功上传图片了。
但是,模板中没有显示图像。
然后我了解到我的 urls.py 应该在末尾有这一行:
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我将此添加到我的 urls.py 的末尾,但现在我收到此错误:
ImproperlyConfigured at / Empty static prefix not permitted
我的 settings.py 中有 MEDIA_URL 和 MEDIA_ROOT,两者都不是空的。
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = '/media/'
为什么会发生这个错误,我该如何解决?
这是我认为我的 urls.py 的相关部分:
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
import notifications
admin.autodiscover()
urlpatterns = patterns('',
....urls......
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
【问题讨论】:
-
...你的
MEDIA_URL和MEDIA_ROOT是什么?你说它们是定义的;但它们是什么? -
我更新了问题。
-
static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)仅用于开发,并且仅适用于将debug设置为True。 docs.djangoproject.com/en/dev/howto/static-files/…
标签: python django heroku django-urls static-files