Django的。静态未加载

时间:2015-12-22 16:26:05

标签: python django django-staticfiles

您好我正在使用Django 1.8.7并且我的静态问题,显然它们没有加载,并且对css的请求似乎走正确路径。

这是我的settings.py文件:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

PROJECT_PATH = os.path.realpath(os.path.dirname(__file__))

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR + '/templates/'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

STATIC_URL = '/static/'

STATICFILES_DIRS = (BASE_DIR + 'static', PROJECT_PATH + 'static')

这是我的项目结构:

tree -I *pyc
.
├── db.sqlite3
├── django_vuldrone
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── mainapp
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── static
│   │   └── css
│   │       └── tem.css
│   ├── templates
│   │   └── mainapp
│   │       └── tem.html
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── manage.py
├── static
│   └── css
│       └── nano.css
└── templates
    └── base.html

我在base.html目录之外有一个mainapp,这在tem.html完全加载,问题是tem.cssnano.css个文件,没有加载。

这就是base.html的样子:

{% load staticfiles %}


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<link rel="stylesheet" href="{% static '/css/nano.css' %}" >
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    <h1>My helpful timestamp site</h1>
    {% block content %}{% endblock %} 
    <h1>Thanks for visiting my site.</h1>

</body>
</html>

这是我的tem.html文件:

{% extends "base.html" %}

{% load staticfiles %}

<link rel="stylesheet" href="{% static '/css/tem.css' %}" >

{% block title %}The current time{% endblock %}

{% block content %}

{% for vulnerability in vulnerabilities %}

    <p>{{ vulnerability.cve }}</p>

{% endfor %}

{% for product in products %}

    <h1>{{ product.vendor }}</h1>

{% endfor %}

{% endblock %}

提前谢谢。

2 个答案:

答案 0 :(得分:2)

我认为路径名上的主要斜线是问题。

请改为:

@drawable/shape

答案 1 :(得分:1)

使用django静态文件查找器时需要考虑的一些事项:

  • 它会在您安装的每个应用程序上查找静态/文件夹。因此,您需要创建app_name / static / app_name才能在模板中执行{%static app_name / css / xxx.css%}。
  • 如果您的根项目文件夹中有静态/文件夹(因为您希望以这种方式在模板中导入这些静态{%static css / bootstrap.css%},即您希望在此处存储您的全局静态文件,等),您必须手动添加此文件夹与STATICFILES_DIRS设置变量。

你的问题是你的静态dirs在他们之间发生冲突,并且django在你做{%static css / whatever.css%}时不知道你要导入哪一个

将mainapp / static / css / tem.css移动到mainapp / static / mainapp / css / tem.css并将静态导入更改为{%static mainapp / css / tem.css%}。如果要从全局静态文件文件夹导入,请执行{%static /css/nano.css%}