我的CSS和图像没有显示Django

时间:2014-04-10 04:45:26

标签: python css django

我正在学习Django,由于某种原因,我的CSS和图像没有显示出来。我觉得我在HTML文件中做错了。我认为我的文件正在被正确收集,因为当我在浏览器中插入http://127.0.0.1:8000/static/images/python-logo@2x.png时,我看到了图像。

这是我的项目树:

mysite
  \articles
       \static
       \articles
           \css
  \static
       \images
       \css
           default.css
       \js 
  \assets
       \admin
       \images
           python-logo@2x.png
       \css
           default.css
  \templates
       base.html
  \settings.py 

在我的settings.py

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

STATIC_ROOT = os.path.join(BASE_DIR, 'assets')

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

STATIC_URL = '/static/'

这是我的base.html

{% load staticfiles %}

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %} My Base Template {% endblock %}</title>

    <link rel="stylesheet" type="text/css" href="{% static "css/default.css" %}">

</head> 

<body>
    <div id="page">
        <div id="sidebar">
            {% block sidebar %}
            <ul>
                <li><a href="/articles/all">Articles</a></li>
                <li><a href="/admin/">Admin</a></li>
            </ul>
            {% endblock %}  
        </div>  
        <div id="content">
            {% block content %}This is the content area{% endblock %}
            <img src="{% static "images/python-logo@2x.png" %}">
        </div>
    </div>

</body>
</html>

4 个答案:

答案 0 :(得分:1)

使用尖括号关闭语法。 现在它已在头部显示问号

答案 1 :(得分:1)

首先,将您的.less样式表与rel属性设置为&#34; stylesheet / less&#34;

<link rel="stylesheet/less" type="text/css" href="styles.less" />

接下来,下载less.js并将其包含在网页元素的标记中:

<script src="less.js" type="text/javascript"></script>

答案 2 :(得分:1)

正如我在您的Reddit帖子中提到的,您需要将/assets目录添加到STATICFILES_DIRS

我不确定为什么你的assetsstatic个文件存放在不同的目录中(你可能想考虑合并这些资产),但这应该是你当前问题的适当解决方案

答案 3 :(得分:1)

试试这个:

在settings.py

替换

STATIC_ROOT = os.path.join(BASE_DIR, 'assets')

有了这个:

STATIC_ROOT = ''

在模板文件中

替换

{% load staticfiles %}

在模板中使用它。

{% load static %}

注意:将assets文件夹的内容放在静态文件夹中。