如何在Django中覆盖bootstrap cdn?

时间:2017-07-02 09:42:56

标签: css django twitter-bootstrap-3

我是Django的新手,对CSS来说更是如此。在我的网站的base.html中,我包含了一个bootstrap cdn,如下所示:

    <meta charset="UTF-8">
    <link rel="shortcut icon" href="{%  static 'favicon.ico' %}">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

但是,我想对css进行一些修改,我不能,因为cdn是一个外部文件。当我因为协议问题而简单地将内容复制到本地css文件时,它将无法工作。 根据{{​​3}},我试图添加另一行,以便覆盖cdn,如下所示:

<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/bootstrap/css/style.css">

但它不起作用。我也尝试在本地html文件中写这行(即不在base.html中),但没有成功。 我的问题是:

  1. 如何覆盖cdn文件?也就是说,它也是最好的地方 放置另一个css文件(我在项目中都有静态目录 和应用程序级别由于某种原因),如果它的名称如何重要?
  2. 什么是简单安全的测试,看看它是否有效?
  3. 最重要的是,我正在寻找两种方式(比如图像和菜单)而不是堆叠的方式。 this previous thread似乎很相关,但它需要修改css文件,我似乎无法做到。
  4. 应该在哪里放置css链接?就像我写的或在meta部分里面一样?

1 个答案:

答案 0 :(得分:0)

  1. 确保您在设置文件中定义了STATIC_URL

    STATIC_URL ='/ static /'

  2. 我建议您阅读django documentation中的静态文件,简单来说,您应该拥有静态文件的结构,在项目文件夹中创建一个名为“static”的文件夹并放入内部的所有静态文件也会被文件夹分解,例如,您将放入的所有.css文件

    /static/css/main.css

  3. 等。 然后我会建议使用django.contrib.staticfiles 最后你需要做的就是那个

    {% load static %}
    <link rel="stylesheet" type="text/css" href="{% static/css/bootstrap/style.css %)">
    

    从您的代码中删除您的cdn链接