Djsto模板中没有包含Bootstrap静态文件

时间:2016-02-08 19:20:17

标签: python css django twitter-bootstrap

我是Django的新手,面临在django页面上渲染引导程序的问题。

这是我的基础html,

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Dropbox Web App Prototype</title>

    <!-- Bootstrap -->
    <link href="{% static 'bootstrap/css/bootstrap.min.css' %}" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
   <div class="jumbotron">
       <h1>Hello, world!</h1>
        <p>This is a template showcasing the optional theme stylesheet included in Bootstrap. Use it as a starting point to create something more unique by building on or modifying it.</p>
      </div>


    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
  </body>
</html>

静态文件与项目目录处于同一级别,并具有以下结构: enter image description here

我还将以下行添加到我的settings.py文件

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

CSS未在主页上呈现。任何帮助表示赞赏。

6 个答案:

答案 0 :(得分:1)

BASE_DIR默认定义为:

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

此处__file__实际上是settings.py,因此BASE_DIR位于父目录中,即包含manage.py的目录。

您的static文件夹似乎处于另一个级别,因此只需将其移至与manage.py相同的级别即可。

答案 1 :(得分:0)

只需在您的设置中定义additioaly静态网址,如下面的某处:

STATIC_URL ='/ static /'

并再次检查是否提供了引导程序

答案 2 :(得分:0)

<强> CDN:

<link rel="stylesheet" type="text/css"  href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"  crossorigin="anonymous">

<强>静态

在django runserver的网址中:

if settings.DEBUG:
    urlpatterns += [url(r'^static/(?P<path>.*)$', views.serve),]

从网络服务器运行时,您需要配置别名。 Nginx示例:

location  /static { 
    alias /home/username/mysite/static;}

settings.py:

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

答案 3 :(得分:0)

你可以粘贴你的BASE_DIR吗?您可以将其设置为:BASE_DIR to BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

答案 4 :(得分:0)

在html中 替换这个

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

用这个

<link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">

并检查这是否在设​​置中。

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

答案 5 :(得分:0)

您使用的旧语法可能与您的Django版本不匹配。 在你的html文件中更改:

{% load staticfiles %}

{% load static %}

另外,用双引号替换单引号:

"{% static 'bootstrap/css/bootstrap.min.css' %}"

为:

"{% static "bootstrap/css/bootstrap.min.css" %}"

您可以看到处理静态文件的确切语法here