我正在用Django上传/显示图片。
网站部署在Heroku上。
遵循this教程,我能够成功上传图像。
但是,图像没有显示在模板中。
然后,我了解到我的urls.py应该在末尾有这一行:
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我把这个添加到我的www.example.com的末尾urls.py,但现在我得到这个错误:
ImproperlyConfigured at / Empty static prefix not permitted
我的www.example.com中有媒体URL和媒体根settings.py但两者都不是空的。
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/'
为什么会发生此错误,我该如何修复?
以下是我认为与我的www.example.com相关的部分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)
9条答案
按热度按时间czq61nw11#
我在我的www.example.com中添加了相同的行urls.py,并得到了与您相同的错误。
文档here说明使用
settings.STATIC_URL
和settings.STATIC_ROOT
我将其更改为文档版本
错误就消失了!
我检查了我的设置文件,确保
settings.MEDIA_URL
和settings.MEDIA_ROOT
都定义正确。后来我将www.example.com调整urls.py回使用settings.MEDIA_URL
和settings.MEDIA_ROOT
。一切都按预期运行。以下是我的www.example.com文件的相关部分settings.py:
我认为
MEDIA_URL
设置不正确jc3wubiy2#
您还必须检查是否正确定义了MEDIA_URL和MEDIA_ROOT以及静态文件STATIC_ROOT STATIC_URL。
同时检查拼写是否正确:)
如果其中一个配置错误,则会导致此错误。
v1uwarro3#
要解决此问题,必须将以下语句添加到settings.py文件中:
owfi6suc4#
确保settings.py具有:
然后在www.example.com中urls.py,试试这个
vd2z7a6w5#
如果您遇到此问题,请确保同时设置了MEDIA_URL和MEDIA_ROOT。
我收到错误
当我在django1.11中只设置了MEDIA_ROOT时
或者,django project wiki说它不能在调试模式下引用URL:https://docs.djangoproject.com/en/1.11/howto/static-files/#serving-files-uploaded-by-a-user-during-development
kd3sttzy6#
我正在跟踪Django 2.2 & Python | The Ultimate Web Development Bootcamp,我的问题是我忘记将这些声明到portfolio-project/portfolio/settings.py/的底部区域:
jogvjijk7#
我最近在使用Django 2.1时也遇到过同样的错误,问题是我没有在项目设置文件中明确指定
MEDIA_URL = '/media/'
。一旦我声明了相同的错误,错误就消失了。9njqaruj8#
为了修复这个错误,我必须将
STATIC_ROOT
和STATIC_URL
放在STATICFILES_DIRS
声明之上。nbewdwxp9#
通过在www.example.com中添加此行来修复此错误urls.py