2013-05-18 1 views
0

Я использую django 1.3 и пытаюсь развернуть проект django (клиент отправлен) на моей машине dev (ubuntu 12.04). Проблема в том, что касается статических файлов. Моя структура каталог выглядит следующим образом:Django: Отсутствуют статические файлы при создании шаблона

project_name 
    media 
    static 
     css 
     img 
     js 
    settings.py 

Вот мой settings.py:

ROOT = '/home/user/project_name' 

MEDIA_ROOT = '%s/media/' % ROOT 
MEDIA_URL = '/media/' 
STATIC_ROOT = '%s/static/' % ROOT 
STATIC_URL = '/static/' 
STATICFILES_DIRS =() 

Мой сайт полностью развернут, но CSS, JS и ГИМ отсутствуют. То же самое касается интерфейса администратора. Когда я использую ссылку http://mysite.com/static/js/some.js, она дает 404.

Помощь будет оценена по достоинству, а голосование будет принято.

ответ

1

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

+0

, вы имеете в виду в основном urls.py? Пожалуйста, объясните свой ответ –

+0

Нет, не в urls.py, потому что, поскольку в документации явно объясняется, Django делает * не * обслуживает ваши статические файлы в процессе производства. Вот почему я заявил, что вам нужно настроить свой веб-сервер для этого. Опять же, если вы достаточно читали документы, чтобы знать, что вам нужно запускать staticfiles, это объясняется в том же месте. –

2

Я думаю, что вам нужно запустить ./manage.py collectstatic :)

+0

, к сожалению, я сделал, но не успех :( –

+0

у вас есть «django.contrib.staticfiles .finders.AppDirectoriesFinder 'в вашем STATICFILES_FINDERS? – GreyZmeem

+0

Да, у меня есть STATICFILES_FINDERS в настройках.py с поведением по умолчанию –

1

вы запустите python manage.py collectstatic? см. here

Будьте осторожны, чтобы в процессе производства вы должны поместить статический файл на статический сервер. В руководящих принципах должно быть что-то.

+0

грустно я сделал, но не успел :( –

+0

Что делать, если u установить 'STATIC_ROOT = 'static /''? – EsseTi

+0

Статический корень предназначен только для производства, вы не должны его сопоставлять например, – user2298943

0

И немного оффтоп ..
Это будет лучше, чтобы использовать:
MEDIA_ROOT = os.path.join (os.path.dirname (файл), 'медиа') заменить ('\. », '/')
STATIC_ROOT = os.path.join (os.path.dirname (файл), 'статический'). заменить ('\', '/')

и в основных URLs .py при разработке, только веб-сервер django:
urlpatterns = patterns ('', (r '^ media/(? P. *)', 'django.views.static.serve', {'document_root': os. папа th.join (otspath.dirname (файл), 'media'). replace ('\', '/')}),
(r '^ static/(? P. *)', ' django.views.static.serve ', {' document_root ': os.path.join (os.path.dirname (файл),' static '). replace (' \ ','/')}),

Таким образом, у дона t need collectstatic, u должен будет его на рабочий сервере, где и будет использовать Nginx или что-то другое на сервер статического