使用django

时间:2017-12-15 09:03:00

标签: javascript python html django twitter-bootstrap

我正在尝试将twitter-bootstrap添加到django项目中。我有一个名为base.html的html文件,它作为其他html代码的包装文件,在它HttpResponse中发回之前放在其中。

base.html

{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link href="{% static '/css/bootstrap.min.css' %}" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src = "{% static '/js/bootstrap.min.js' %}"></script>
    <title>TITLE</title>
</head>
<body>
    {% autoescape off %}{{ content }}{% endautoescape %}
</body>
</html>

这个文件是唯一可以发送回网站访问者的文件,所以我想如果我在base.html内添加文件引导需求,那么它也可以用于内容中的代码。事实上,所有的css东西似乎工作正常,但每当我尝试在我的网站的导航栏中打开一个下拉菜单时,它就不会显示。

这是有困难的页面的源代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link href="/static/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src = "/static/js/bootstrap.min.js"></script>
    <title>TITLE</title>
</head>
<body>
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="?p=index">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="?p=channel">testchannel</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    <form class="form-inline">
      <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
    <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Username
        </a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="?p=Channel">Visit Channel</a>
          <a class="dropdown-item disabled" href="#">Statistics</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item disabled" href="#">Settings</a>
        </div>
      </li>
        </ul>
  </div>
</nav>
    <h1>A TEST HEADER</h1>

</body>
</html>

点击"/static/css/bootstrap.min.css""/static/js/bootstrap.min.js",我都会将我重定向到一个文件(不会弹出404错误)。

导致导航栏不起作用的问题是什么?我该如何解决?

编辑:

根据请求处理静态的settings.py部分:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# some more stuff here like INSTALLED_APPS and TEMPLATES

STATICFILES_DIRS = (
    '/home/<name>/Desktop/django/myproject/Bootstrap',
)

STATIC_URL = '/static/'

1 个答案:

答案 0 :(得分:1)

请确保在settings.py文件中包含正确的静态路径。

我在我的一个项目中使用了类似下面的内容,它运行正常。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'

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