为什么Django没有加载我的CSS?

时间:2017-07-06 00:06:25

标签: html css django python-3.x django-templates

我正在使用Django创建一个网站,由于某种原因,我的CSS文件对页面没有任何影响。我已经检查过以确保我的STATIC_URL已定义但仍然没有运气。

我的settings.py:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

在我的博客应用程序内部,我有一个静态目录

blog
  |
  static
     |
     css
       |
       blog.css

我的HTML文档:

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Medicare Supplemental info</title>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <!-- This is where I'm loading the CSS file -->
        <link rel="stylesheet" href="{% static 'css/blog.css' %}">
    </head>

我检查过以确保我在settings.py中安装了所需的应用:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

我也尝试过更改加载静态文件的方式:

{% load staticfiles %}

为:

{% load static %}

仍然没有运气。我做错了什么?

6 个答案:

答案 0 :(得分:1)

我想你在urls.py中错过了这个:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

这项工作在开发中,在生产中你必须使用manage.py收集静态并使用nginx(或apache)提供静态。

答案 1 :(得分:1)

对于django == 2.0.2没有必要更改urls.py,只需在settings.py中获取STATIC_URL

答案 2 :(得分:0)

遇到同样的问题,搜索没有任何解决方案后,我在CMD窗口中随意按下了Fragments,然后继续运行python runserver,发现成功找到了Enter

enter image description here

答案 3 :(得分:0)

我遇到了一些问题,适用于我的解决方案是使用CRTL-BREAK停止服务器,然后重新启动。我正在使用Django v.3.0.7。

答案 4 :(得分:0)

如果您不是像其他情况那样从其他html文件扩展,则html文件中的第一个条目应该是!DOCTYPE html,然后是加载模板标记,即{%load staticfiles%}。

答案 5 :(得分:0)

对于在 django 之后删除设置文件中 os 导入的任何人。

使用 STATIC_ROOT = BASE_DIR / 'static' 而不是 os.path.....