Django,无法加载图像,但已加载 css

Django, not able to load image, but css is loaded

我可以根据 djangoproject 提供的教程加载 css 文件,但无法加载图像。 这是文件结构: appname/static/混乱/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 的初学者。 姜戈版本:1.8 如果您需要更多信息,请告诉我。提前致谢。

在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()

此处需要进行一些更改。您可以将以下代码复制并粘贴到您的模板中,并在您的 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 %} 以使您的代码保持干爽(不要重复自己)。我还对您的代码进行了一些语法更改;非常小。在 url 中,当您的设置设置为 DEBUG = True 时,Django 将加载您的静态图像。当您投入生产并且 DEBUG = False 时,Django 不再提供静态文件。这是您的服务器的责任。

希望对您有所帮助。

如果还是不行,你能post你的STATIC_URLSTATIC_ROOT吗?

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