2014-10-11 85 views
0

在网上冲浪时,我发现了一些我的问题的解决方案。但它没有帮助(Include CSS and Javascript in my django template)最后的答案。 我urls.py添加了这个:无法将css文件或图像附加到Django模板上

urlpatterns += patterns('', 
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}), 
) 

这是我settings.py

CURRENT_PATH = os.path.abspath(os.path.dirname(__file__).decode('utf-8')) 

MEDIA_ROOT = os.path.join(CURRENT_PATH, 'media') 

MEDIA_URL = '/media/' 

STATIC_ROOT = 'static/' 

STATIC_URL = '/static/' 

STATICFILES_DIRS = (
        os.path.join(CURRENT_PATH, 'static'), 
) 

而且我的模板:

<html> 

<head lang="en"> 
    <meta charset="UTF-8"> 
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/main.css" /> 
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/bootstrap.min.css" /> 
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/font-awesome.min" /> 
    <title></title> 
</head> 
<body> 
{% load staticfiles %} 
<div id="modal" class="modal fade"> 
      <div class="modal-header"> 
        <div>Вхід у систему</div> 
      </div> 
      <div class="modal-body"> 
       <form action = "/login/" method="post"> 
       <div> 
        <label for="username">Логін:</label> 
        {{form.username}} 
       </div> 
       <div> 
        <label for="password">Пароль:</label> 
        {{form.password}} 
       </div> 
       <br> 
       <div> 
        <input type="submit" value="Submit"> 
       </div> 
       </form> 
      </div> 
     </div> 


<img src="{{STATIC_URL}}ukraine.png" alt="My image"/> 
</body> 
</html> 

其结果是CSS文件没有工作,甚至像ISN”找到了。 我创建了静态文件的文件夹:D:\KIT\static\css

+0

尝试更改'CURRENT_PATH = os.path.dirname(os.path.dirname(__ file __))' – 2014-10-11 11:48:59

回答

0

从官方documents参考:

  1. 请确保您已包含在INSTALLED_APPS

  2. 什么是CURRENT_PATHdjango.contrib.staticfiles?请确保它是D:\KIT\

  3. 然后你可以inlcude他们是这样的:

    <link rel="stylesheet" type="text/css" href="{% static "css/main.css" %}" /> 
    
  4. 确保您的模板开始{% load staticfiles %}

+1

不要忘记{%load staticfiles%} – skzryzg 2014-10-11 11:53:46

+0

漂亮的接球,加入到答案中。 – avi 2014-10-11 11:55:36

0

你可能忘了运行collectstatic。每次在开发过程中更改某些内容时运行它都是非常不现实的,因此为了避免这种情况,您必须修改设置。

将django.contrib.staticfiles添加到您的INSTALLED_APPS并设置DEBUG = True,然后runserver将为您完成繁重的工作。

我还建议在{{STATIC_URL}}上使用静态模板标记{%static'path/to/static.css'%},并在第一行放置模板标签加载(第二行,如果您要扩展模板)的模板文件。