2017-04-07 92 views
0

問題在標題中描述。我有一個使用Django創建的博客模板。Django不顯示我的模板的CSS

當我打開它通常,使用雙擊在HTML文件中,它看起來像這樣:

The template Working

但是當我通過從Django項目的URL打開它,它看起來像這樣

Template doesnt works

它只顯示一個綠色的正方形(css的一部分),但顯然無法正確打開css。

任何想法來解決這個問題?

+0

讓我們來看看你的JS控制檯 – JacobIRR

回答

0

在Django中,您不需要雙擊文件就可以打開HTML,您需要首先運行服務器並使用localhost打開您的網站(就像您在第二張圖片中所做的那樣)。

通過這些圖像判斷,你確定把圖像放在靜態文件夾中嗎?在Django中,HTML文件保留在應用程序的「模板」文件夾以及「靜態」文件夾中的css,javascript和圖像中。

如果這個答案對你沒有幫助,那麼你應該在這裏發佈你的代碼,否則我找不到問題。

0

這是因爲你的靜態文件沒有被正確渲染。

把裏面

   codingfacilito 
      /  |  \ 
      /  |  \ 
    another-app  blog  One-more-app 
         | 
         | 
        static 
         | 
         | 
         blog 
        /| \ 
       / | \ 
       js css images 
       /  |  \ 
      /  |   \ 
    script1.js  style1.css  img1.jpg 
    script2.js  style2.css  img2.jpg 

所有靜態文件,上面是來存儲靜態文件最有用和推薦的方式。

現在,在你的HTML文件

HTML模板

Dont't忘記添加{%負載staticfiles%}

<!DOCTYPE html> 
{% load staticfiles %} <!-- Don't forget this --> 
<html> 
    <head> 
     <!-- Stylesheets --> 
     <link rel="stylesheet" href="{% static 'blog/css/style1.css' %}"/> 
     <link rel="stylesheet" href="{% static 'blog/css/style2.css' %}"/> 

     <!-- javascripts --> 
     <script src="{% static 'blog/js/script1.js' %}"></script> 
     <script src="{% static 'blog/js/script2.js' %}"></script> 
    </head> 
</html> 

<body> 
    <!--render your image now --> 
    <img src="{% static 'blog/images/img1.jpg' %}"> 
</body> 

我解釋目錄結構很重要。現在它可能看起來對你來說是多餘的,但它也許是最好的方式。因爲當django收集靜態文件時,它會進入每個應用程序的靜態目錄中,並收集所有文件,如果沒有按照上述方式進行操作,將會出現名稱衝突,並且可能會遇到問題。

+0

嗨Astik,謝謝你的回答和你的時間。我對目錄樹有點困惑:爲什麼有一個 博客> satic> blog> css? 不能只有博客> satic> css? 以及如何在settings.py中使用變量STATIC_URL ='/ static /'?它與這個問題有關嗎?再次感謝你:) –

+0

@OldWolf只需按照上面的目錄結構blog> static> blog> css。現在你可能不瞭解它的重要性,但它非常重要。對於開發過程,STATIC_URL ='/ static /'是可以的。 –

+0

再次@Astik Anand。非常感謝你幫助我。現在它完美的作品:) –