Python 向django添加静态图像

Python 向django添加静态图像,python,django,Python,Django,已更新我的文件夹结构如下: 在运行manage.py collectstatic命令后,django的静态文件被复制到我的项目文件夹中,如下所示,然后我将我的logo.png放到它的img中/ mysite_new/ manage.py mysite/ ------ __init__.py urls.py setting.py wsgi.py templ

已更新我的文件夹结构如下: 在运行manage.py collectstatic命令后,django的静态文件被复制到我的项目文件夹中,如下所示,然后我将我的logo.png放到它的img中/

 mysite_new/

      manage.py
      mysite/
      ------ __init__.py
             urls.py
             setting.py
             wsgi.py
             templates/
                      default.html
             static/
                     img/
                          logo.png
                          .....
      ticket/
      ------__init__.py
            models.py
            view.py
            urls.py
            ......
在setting.py中,我设置

PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
MEDIA_URL = ''
MEDIA_ROOT = ''
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_PATH,'static')
STATICFILES_DIRS = (
)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
在mysite/url.py中,我设置了

        urlpatterns = patterns('',
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^hello/', hello),
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT },name="media"),



)
然后在web浏览器中,在输入
http://127.0.0.1:8000/hello
,它显示

然后我从“哈哈”加载图像,它链接到

未显示图片,因此可能图像路径不正确,并且图像未成功加载。 谁能帮助我在我的hello方法view.py中显示这些图像? 这个问题让我困惑了很久,提前谢谢你的帮助。 我的django版本是1.4


我已经找到了解决方案,无需移动我的静态文件夹,只需将其与ticket/保持相同的级别,然后在setting.py中添加ADMIN_MEDIA_PREFIX='/static/ADMIN/”。你应该将静态目录移动到mysite。徽标的url将为127.0.0.1:8000/static/images/logo.png

并将静态根设置为一级:

STATIC_ROOT = os.path.join(PROJECT_ROOT, '..', 'static')
collectstatic命令将在此处复制项目和应用程序的静态文件

UPD:


在url.py中尝试以下操作

from django.conf import settings
from django.conf.urls.static import static
在文件的底部

if settings.DEBUG and settings.MEDIA_ROOT:
    urlpatterns += static(settings.MEDIA_URL,
        document_root=settings.MEDIA_ROOT)

问题出在你的URL文件中。你把django服务函数路径带到媒体根目录,而不是静态目录

试试看:

urlpatterns = patterns('',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/', hello),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT },name="media"),
urlpatterns=patterns(“”,
url(r“^admin/doc/”,包括('django.contrib.admindocs.url'),
url(r“^admin/”,包括(admin.site.url)),
url(r“^hello/”,hello),
url(r'^static/(?P.*)','django.views.static.service',{'document\u root':settings.static\u root},name=“media”),
)语法错误

<img src="{{ STATIC_URL }}img/logo.png"" alt="hahaha">

正确语法-

<img src="{{ STATIC_URL }}img/logo.png" alt="hahhaa">



您是否运行了
manage.py collectstatic
?不,我没有运行该命令。我运行了
manage.py collectstatic
然后项目将静态文件复制到我的项目文件夹mysite/。然后我该怎么办?将logo.png按错误的顺序放到mysite/static/admin/img/?中。您将静态文件放在静态文件夹中,如mysite/static/管理员之类的,然后你就错了
manage.py collectstatic
if settings.DEBUG and settings.MEDIA_ROOT:
    urlpatterns += static(settings.MEDIA_URL,
        document_root=settings.MEDIA_ROOT)
urlpatterns = patterns('',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/', hello),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT },name="media"),
<img src="{{ STATIC_URL }}img/logo.png"" alt="hahaha">
<img src="{{ STATIC_URL }}img/logo.png" alt="hahhaa">
<img src="{% static 'img/logo.png' %}" alt="hahhaa">