【问题标题】:bootstrap navbar dropdowns not showing with django引导导航栏下拉菜单未使用 django 显示
【发布时间】:2018-05-29 11:05:30
【问题描述】:

我正在尝试将 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/'

【问题讨论】:

    标签: javascript python html django twitter-bootstrap


    【解决方案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"),
    )
    

    【讨论】:

    • 啊,我会将 settings.py 的那部分添加到我原来的问题中,以便您检查
    猜你喜欢
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多