2017-04-07 132 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。非常感谢你帮助我。现在它完美的作品:) –