Как я могу добавить CSS и JQuery файл в моем проекте Django? - PullRequest
4 голосов
/ 20 ноября 2010

Я изучаю Django для одного из моих веб-проектов.Столкнувшись с трудностями, чтобы добавить CSS, JQuery файл в моем проекте.Шаблон очень прост и не требует использования extends. Просто одна страница формы.Что я сделал, чтобы объявить мой медиафайл: В файле settings.py: добавлен путь:

`import os

def path(*x):
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), *x)

`Затем добавлено:

MEDIA_ROOT = path('media') #media is my folder where all the css,js file are 
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/media/'
TEMPLATE_DIRS = (
    path('templates')

В файле urls.py добавлено:

from django.conf import settings
urlpatterns = patterns('',
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 'document_root' : settings.MEDIA_ROOT }),

В файле шаблона я пробовал все эти типы объявлений:

<script type="text/javascript" src="/media/jquery.min.js"></script> 
    <script type="text/javascript" src="/media/site.js"></script>   
    <link rel="stylesheet" type="text/css" media="screen" href="/media/screen.css" />
    <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../media/screen.css" />

Но когда я загружал файл шаблона как простой html с помощью:

<script type="text/javascript" src="../media/jquery.min.js"></script> 
    <script type="text/javascript" src="../media/site.js"></script> 
<link rel="stylesheet" type="text/css" media="screen" href="../media/screen.css" />

Это сработало. Но мне нужно интегрироваться в мой проект Django.Надеюсь получит навигацию и решит ее :) Спасибо

Ответы [ 3 ]

6 голосов
/ 20 ноября 2010

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

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />

Если вы определите MEDIA_URL как "/ media /", то эта ссылка сработает как /media/test.css.

При условии, что у вас следующая структура каталогов:

my_project
    |-- settings.py
    |-- urls.py
    |-- media
        |-- test.css

Я бы дважды проверил все ваши имена файлов и каталогов, убедился, что у вас нет ошибочных / лишних слешей и т. Д..

Кроме того, я предполагаю, что «test.css» должен был быть «screen.css», как и во всех других ваших примерах ...

Но в основном, используя абсолютный URLпуть (начинающийся с косой черты, чтобы указать, что он разрешается из корня сайта) будет работать так же, как и использование относительного пути (../), если ваши файлы действительно находятся в нужном месте.Тогда то, что у вас будет работать.

2 голосов
/ 27 ноября 2012

Я думаю, что в urls.py вы могли пропустить url в urlpatterns, то есть:

urlpatterns = pattern ('', url (r '^ media / (? P. *) $', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

2 голосов
/ 20 ноября 2010

Моя структура каталогов выглядит следующим образом:

|-- test_form
|-- /settings.py
|-- /urls.py
|-- /media
|   '-- test.css
'-- /templates
    '-- ...

И я добавил следующий синтаксис в мой файл template.html:

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}test.css" />

Я не совсем понимаю, где проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...