Использование bootstrap в Django в Ubuntu - PullRequest
0 голосов
/ 21 февраля 2020

Я пытался использовать bootstrap в своем приложении. но я получаю ОШИБКУ 404 для каждого bootstrap файла, который запрашивает мой шаблон. Мой Django проект находится в подкаталоге моего сайта (www.example.com/django-project). Сначала я загружаю bootstrap прямо с их сайта и помещаю в каталог проекта следующим образом. Но после некоторых сбоев при загрузке файлов на веб-сайт я установил его, используя python3 -m pip install django-bootstrap-static. Мои файлы конфигурации выглядят следующим образом:

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'get_cfp_list',
    'bidiutils',
    'bootstrap',
    'fontawesome',
]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'bidiutils.context_processors.bidi',
                'django.template.context_processors.static',
            ],
        },
    },
]

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    '/var/www/portal/portal/static/bootstrap/',
)
STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
)

Структура папки: / var / www/portal/portal/

├── db.sqlite3
├── get_cfp_list
│   ├── admin.py
│   ├── apps.py
│   ├── cfp.html
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── views.py
├── manage.py
├── portal
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
├── static
│   └── bootstrap
│       ├── css
│       │   ├── bootstrap.css
│       │   ├── bootstrap.min.css
│       │   ├── bootstrap-responsive.css
│       │   └── bootstrap-responsive.min.css
│       ├── img
│       │   ├── glyphicons-halflings.png
│       │   └── glyphicons-halflings-white.png
│       └── js
│           ├── bootstrap.js
│           └── bootstrap.min.js
└── templates
    ├── base.html
    ├── cfp.html
    └── styles
        └── table.css

Я также использовал bootstrap стартовый шаблон следующим образом: ( base. html)

{% load static %}

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Bootstrap, from Twitter</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- Le styles -->
    <link href="{{ STATIC_URL }}css/bootstrap.css" rel="stylesheet">
    <style>
      body {
        padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
      }
    </style>
    <link href="{{ STATIC_URL }}css/bootstrap-responsive.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="{{ STATIC_URL }}js/html5shiv.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
      <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
                    <link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
                                   <link rel="shortcut icon" href="../assets/ico/favicon.png">
  </head>

  <body>

    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="brand" href="#">Project name</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
              <li class="active"><a href="#">Home</a></li>
              <li><a href="#about">About</a></li>
              <li><a href="#contact">Contact</a></li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>

    <div class="container">

      <h1>Bootstrap starter template</h1>
      <p>Use this document as a way to quick start any new project.<br> All you get is this message and a barebones HTML document.</p>

    </div> <!-- /container -->

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="{{ STATIC_URL }}js/jquery.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-transition.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-alert.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-modal.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-dropdown.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-scrollspy.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-tab.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-tooltip.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-popover.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-button.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-collapse.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-carousel.js"></script>
    <script src="{{ STATIC_URL }}js/bootstrap-typeahead.js"></script>

  </body>
</html>

Но я получил net::ERR_ABORTED 404 (Not Found)

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Вы пытались загрузить их, используя {% static %} шаблон тега , как написано в документации ? Тег Stati c должен загружать эти файлы, поскольку они есть в вашем installed_apps.

<link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
.
0 голосов
/ 21 февраля 2020

Вы пытались загрузить bootstrap в свой шаблон, например, так:

<head>
    <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
    <script defer src="{% static 'fontawesome/js/all.min.js' %}"></script>
</head>

А затем через JS импорт (обычно их нужно включать в самом конце, перед телом тег закрывается):

<script src="{% static 'bootstrap/js/jquery.min.js' %}"></script>
<script src="{% static 'bootstrap/js/bootstrap.bundle.min.js' %}"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...