簡體   English   中英

Django的。 靜態未加載

[英]Django. Statics not loading

您好我正在使用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

我在mainapp目錄之外有一個base.html ,這在我的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 %}

先感謝您。

我認為路徑名上的主要斜線是問題所在。

改為:

{% static 'css/tem.css' %}

使用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%}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM