2013-05-04 19 views
8

Próbuję uzyskać bootstrap działający w moim projekcie django i postępujący zgodnie z tutorialem here , ale to nie zadziałało. Kiedy odwiedzam mój lokalny projekt w przeglądarce, pokazuje on tylko pustą stronę z 4 niebieskimi liniami. nie exaclty, czego się spodziewałem. W pycharm (moje idee) mówi mi, że mam nierozwiązany ref38 do STATIC_URL w moim szablonie. Myślę, że problem polega na tym, że samo umieszczenie bootstrap w moim projekcie i zdefiniowanie go w moich ustawieniach nie było wystarczające. jakieś pomysły?Używanie bootstrap i django

Przepraszam, w zasadzie tutaj jest, jak skonfigurowano mój projekt. Main_Project/ app_1, app_2, media/szablony /, Main_Project/ więc należy umieścić boostrap ramach pierwszego Main_Project lub drugi

Również tutaj jest moje ustawienia w przypadku jest to ważne.

STATIC_ROOT = os.path.join(SITE_ROOT, 'static_files') 

# URL prefix for static files. 
# Example: "http://media.lawrence.com/static/" 
STATIC_URL = '/static/' 

Odpowiedz

2
  1. pierwszy statyczny adres URL w settings.py powinny być wygląda następująco:

    STATIC_URL = '/ static /'

  2. Po powinno być stworzenie wewnątrz folderu 3 statyczne folderu:

    • img
    • cs s
    • js
  3. Pobierz Bootstrap się umieścić wewnątrz poszczególnych plików poprawnie w powyższych folderach

  4. Wreszcie w imporcie szablonu bootstrap:

    <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/bootstrap.min.css"/> 
    <link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/bootstrap-responsive.min.css"/> 
    <script type="text/javascript" src="{{STATIC_URL}}js/bootstrap.min.js"></script> 
    
  5. należy umieścić pliki na zewnątrz aplikacja lub wewnątrz aplikacji, aby spersonalizować każdą aplikację za pomocą plików statycznych, różnica polega na adresie urlacji statycznej.

    5.1 poza aplikacji

    STATIC_URL = '/ static /'

    5,2 Wewnątrz każdej aplikacji:

    STATIC_URL = '/ App1/static /'

    STATIC_URL = '/ App2/static /'

  6. A STATIC_ROOT umieścić

    STATIC_ROOT = ''

+1

to nie zadziała chyba że '{% load staticfiles%}' – Ngenator

+0

zmieniłem na {{STATIC_URL}} zdania, które nie używają {% load staticfiles%} –

+0

@Ngenator '{% static ...%}' nie zadziała bez '{ % load staticfiles%} ',' {{STATIC_URL}} 'jest po prostu zmienną ustawioną w kontekście przez aplikację statycznych plików. – J0HN

15

Kevin tutaj, autor tego artykułu z Pythona Diary.Od czasu, kiedy pisał, że poradnik Stworzyłem innych metod umożliwiających Bootstrap w projekcie Django, w tym przydatny szablon projektu, który można pobrać stąd:

http://www.pythondiary.com/templates/bootstrap

Mam również rozpoczął projekt na BitBucket od których ma aplikację do zarządzania bootstrapem Django, która jest bardzo łatwa w użyciu, wystarczy dodać ją do "INSTALLED_APPS", a następnie rozszerzyć dowolny szablon z oryginalnej strony Bootstrap, na przykład starter.html, do wyboru. Oczywiście możesz również obrócić własny motyw bootstrapu. Staram się aktywnie go zaktualizować i szukam więcej sugestii, aby uczynić go „Django goto APP” dla programistów, którzy chcą korzystać z Bootstrap w swoim projekcie, repo BitBucket można znaleźć tutaj:

https://bitbucket.org/kveroneau/django-bootstrap-theme

nadzieję, że ten pomaga każdemu, kto może natknąć się na tę stronę Stackoverflow.

0

To co pracował dla mnie, po co jest napisane w dokumencie:

https://docs.djangoproject.com/en/1.10/howto/static-files/

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'settings' 
] 

...

STATIC_URL = '/static/' 

statycznych plików umieszczonych w project/my_app/static/my_app/css/bootstrap.min.css

Szablon umieszczony tutaj w project/my_app/templates/my_app/base.html

{% load static %} 
<!DOCTYPE html> 
<html lang="en"> 

<head> 

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

plik settings.py Project (to linie są domyślne i ich nie zmieni):

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

w folderze aplikacji (folder szablony z .html pliku powinna być tam zbyt):

Utwórz folder "static" (pliki z podfolderów bootstrap), struktura powinna wyglądać następująco:

app folder structure

static folder structure

w szablonie html import pliku uruchamiającego tak (uwaga CSS iść w głowy i JS iść w ciała sekcji):

<html> 
<head> 
    <title> Your title </title> 

    <!-- To prepare django for loading static files --> 
    {%load staticfiles %} 

    <!-- And with <link> or <script> tag you actualy import bootstrap files in page --> 
    <link href={% static "css/bootstrap.min.css" %} rel="stylesheet"> 
</head> 

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


<p> Next your page code ............... </p> 
<p> Next your page code ............... </p> 
<p> Next your page code ............... </p> 


</body> 

Powiązane problemy