0

我可以根据 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 如果您需要更多信息,请告诉我。提前致谢。

4

3 回答 3

1

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

于 2015-08-04T18:33:35.480 回答
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()
于 2015-08-02T15:54:45.930 回答
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 %}在顶部添加以保持您的代码干燥(不要重复自己)。我还对您的代码进行了一些语法更改;非常轻微。在 urls 中,当您的设置设置为 时DEBUG = True,Django 将加载您的静态图像。当您投入生产时DEBUG = False,Django 不再提供静态文件。那是你的服务器的责任。

我希望这会有所帮助。

如果它仍然不起作用,您可以发布您的STATIC_URLandSTATIC_ROOT吗?

于 2015-08-02T16:10:44.747 回答