【问题标题】:Access images on localhost访问本地主机上的图像
【发布时间】:2016-01-10 08:31:52
【问题描述】:

我有一个Django 项目,我想在其中访问一些图像。

我已经在mySite\settings.py 中设置了路径

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

我的网址是这样定义的:

from . import views                                                

urlpatterns = [                                                    
        url(r'^$', views.index, name='index'),                     
]

if settings.DEBUG:                                                 
    # static files (images, css, javascript, etc.)                 
    urlpatterns += patterns('',                                    
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,                  
        }),                                                        
   )

所以图像位于mySite/media/subfolder。现在我想在我的页面上显示我的图片,我的&lt;img&gt;-tagsrc 是这样的

/media/subfolder/foobar.png

所以完整路径是http://localhost:8000//media/subfolder/foobar.png(在网络控制台中检查)。但是,没有图片显示。我还尝试了其他不同的绝对路径,例如 http://localhost:8000/subfolder/foobar.pnghttp://localhost:8000/foobar.png,但没有显示任何图像。

我读过Django MEDIA_URL and MEDIA_ROOTdjango media not loading,但没有帮助。

我错过了什么?

【问题讨论】:

  • DEBUG = True 在设置中,对吧?
  • MEDIA_ROOT 是否具有您认为的价值?你在__file__ 上调用dirname 两次,所以如果__file__…/mySite/settings.py,那么结果将是mySite 的父级。附加 media 不会给你 mySite/media
  • @ZackTanner 是的,DEBUG 设置为 True
  • @RobKennedy 我刚刚打印出了路径,我认为它显示了正确的路径:BASE_DIR: /Projects/mySiteMEDIA_ROOT: /Projects/mySite/mediaMEDIA_URL: /media/__file__: /Projects/mySite/mySite/settings.py
  • 我明白了。您有两个级别的项目目录。我没想到会这样,但 c'est la vie。

标签: python django django-views django-urls django-settings


【解决方案1】:

我刚刚注意到了错误。

问题是我将 url 设置放入了错误的urls.py。我的mySite/urls.py 有以下代码:

urlpatterns = [
    url(r'^app/', include('app.urls')),
]

在我的应用程序中,我有上面提到的代码。因此,我的media 文件夹的路径是错误的。现在我搬家了

if settings.DEBUG:                                                 
    # static files (images, css, javascript, etc.)                 
    urlpatterns += patterns('',                                    
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,                  
        }),                                                        
   )

mySite/urls.py,路径正确并显示图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    相关资源
    最近更新 更多