пытаясь загрузить CSS / изображения в Django - PullRequest
0 голосов
/ 25 мая 2010

Я уже посмотрел http://docs.djangoproject.com/en/dev/howto/static-files/, но все еще не понимаю, как загрузить файлы CSS / изображения.

На моем сервере папка с изображениями и файл css находятся по адресу / srv / twingle / search

мой urls.py

 1 from django.conf.urls.defaults import *
  2 
  3 # Uncomment the next two lines to enable the admin:
  4 # from django.contrib import admin
  5 # admin.autodiscover()
  6 
  7 urlpatterns = patterns('twingle.search.views',
  8    url(r'^$', 'index'),
  9    url(r'^search/(?P<param>\w+)$', 'index'),
 10 
 11 (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
 12         {'document_root': '/srv/twingle/search'}),
 13 
 14 )

Я пытаюсь получить доступ к своему CSS следующим образом,

<link rel="stylesheet" type="text/css" href="/site_media/style.css" />

Именно так сказано в учебнике, но это не работает. Есть предложения?

Ответы [ 3 ]

3 голосов
/ 25 мая 2010

Вы закрыли urlpatterns в строке 10, поэтому ваши объявления site_media просто находятся там, ни к чему не привязанные.Избавьтесь от дополнительной закрывающей скобки на 10.

Отредактировано для добавления Вы также использовали аргумент префикса, который также применяется к статическому представлению.Сделайте это:

urlpatterns = patterns('twingle.search.views',
   url(r'^$', 'index'),
   url(r'^search/(?P<param>\w+)$', 'index'),
)

urlpatterns += patterns('',
    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': '/srv/twingle/search'})
)
2 голосов
/ 25 мая 2010

Используйте только django.views.static.serve для разработки или тестирования. Кстати, ваше правило для статических файлов не записывается как аргумент для функции patterns. Это может быть что-то вроде этого:

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('twingle.search.views',
   url(r'^$', 'index'),
   url(r'^search/(?P<param>\w+)$', 'index'),

   url(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',
         {'document_root': '/srv/twingle/search'}),
)   
0 голосов
/ 25 мая 2010

Вы должны записать правила непосредственно в конфигурацию веб-сервера, чтобы они соответствовали URL-адресу носителя. Или используйте другой vhost для статических файлов.

Не в конфигурации django

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