Django,无法加载图片,但加载了css

时间:2015-08-02 15:37:11

标签: django django-templates django-staticfiles django-static

我能够根据djangoproject提供的教程加载css文件,但图像没有加载。 这是文件结构: appname / static / mess / img / burger.jpg

这是我尝试加载图片的login.html文件。

`<html>
 <head>
     <title>Login | Mess @ IIIT Sri City</title>
     {% load staticfiles %}
     <link rel="stylesheet" type="text/css" href="{% static 'mess/css/style.css' %}"> 
     <link rel="stylesheet" type="text/css" href="{% static 'mess/css/bootstrap.min.css' %}">
 </head>
 <body>
     <div class="container">
         <div id="left-content" class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
         {% load staticfiles %}
         <center><img src="{% static 'mess/img/burger.jpg' %}" alt="Please Login here"></center>
         </div>
         <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
             <form action="" method="post">{% csrf_token %}
                 {{ form}}
                 <input  type="submit" value="Submit" />
             </form>
         </div>
     </div>
 </body>
`

如果你可以解决这个问题,那将是一个很大的帮助。 PS:我是Django的初学者。 Django版本:1.8 请告诉我你是否需要更多信息。提前致谢。

3 个答案:

答案 0 :(得分:1)

这是因为该文件夹没有必要的权限,Django无法访问它。

答案 1 :(得分:0)

你在url.py中的

配置了静态文件吗?

if settings.DEBUG:  
        urlpatterns += patterns('',  
                                #REMOVE IT in production phase  
                                (r'^media/(?P<path>.*)$', 'django.views.static.serve',  
                                {'document_root': settings.MEDIA_ROOT})
          )
urlpatterns += staticfiles_urlpatterns()

答案 2 :(得分:0)

这里有一些变化。您可以为您的模板复制并粘贴以下代码,以及urls.py中的设置:

<强> HTML:

{% load staticfiles %}

<html>
    <head>
        <title>Login | Mess @ IIIT Sri City</title>
        <link rel="stylesheet" type="text/css" href="{% static 'mess/css/style.css' %}"> 
        <link rel="stylesheet" type="text/css" href="{% static 'mess/css/bootstrap.min.css' %}">
    </head>
    <body>
        <div class="container">
            <div id="left-content" class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
                <center><img src="{% static 'mess/img/burger.jpg' %}" alt="Please Login here" /></center>
            </div>
            <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
                <form action="" method="post">{% csrf_token %}
                    {{ form }}
                    <input type="submit" value="Submit" />
                </form>
            </div>
        </div>
    </body>
</html>

<强>网址:

if settings.DEBUG:
    urlpatterns += patterns('',) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += patterns('',) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在html中,我在顶部添加了{% load staticfiles %}以保持代码干净(不要重复自己)。我还对您的代码进行了一些语法更改;很小的。在网址中,当您的设置设置为DEBUG = True时,Django将加载您的静态图像。当你进入制作和DEBUG = False时,Django不再提供静态文件。这是您的服务器的责任。

我希望有所帮助。

如果仍然无效,请您发布STATIC_URLSTATIC_ROOT吗?