2014-10-11 51 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'%},並在第一行放置模板標籤加載(第二行,如果您要擴展模板)的模板文件。