首页 文章

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

提问于
浏览
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请告诉我你是否需要更多信息 . 提前致谢 .

3 回答

  • 1

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

    urls:

    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 吗?

  • 0

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

相关问题