2013-11-10 3 views
4

Я, вероятно, делаю несколько вещей неправильно, потому что я все еще не могу заставить статические файлы работать правильно в моей среде разработки, несмотря на то, что внимательно следил за учебником. У меня такое чувство, потому что он немного по-другому работает в Django 1.6, и я могу найти ответы только на предыдущие версии.Статические файлы в Django 1.6

Вот моя структура каталогов:

mysite 
├───app1 
├───mysite 
│ └───templates 
├───resources 
├───static 
│ ├───css 
│ ├───fonts 
│ └───js 
└───app2 

Мои установленные приложения, чтобы доказать, что есть staticfiles на:

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'app1', 
    'app2', 
) 

Мои настройки шаблонов и статического файла:

# Templates 
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "mysite/templates"), 
) 

# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.6/howto/static-files/ 

STATIC_URL = '/static/' 

Я даже сделал это в моем urls.py, как предложено:

urlpatterns = patterns('', 
    ... 
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

И, наконец, моя просьба:

{% load staticfiles %} 
<link href="{% static "css/core.css" %}" rel="stylesheet"> 

Если я перейти непосредственно к http://127.0.0.1/static/css/core.css, я получаю 'css\core.css' could not be found

Пожалуйста, скажите мне, что я сделал неправильно = [

ответ

7

Поскольку статический каталог не «живет» в одном из приложений (app1, app2 в вашем случае), django не может найти статический каталог. Поэтому с вашей текущей структурой вам нужно добавить статический каталог в STATICFILES_DIRS.

Из документации:.

«Ваш проект будет, вероятно, также имеет статические активы, которые не привязаны к конкретному приложению В дополнении к использованию статического каталога/внутри вашему приложения, вы можете определить список каталогов (STATICFILES_DIRS) в вашем файле настроек, где Django также будет искать статические файлы ».

Что-то вроде этого:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
) 

См: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS

Надеется, что это помогает.

+0

Я думал, что это сработало сначала, потому что оно показало пустую страницу, но потом я понял, что это произошло только потому, что сервер не был в сети. Все еще дает ту же проблему! – CJxD

+0

Можете ли вы распечатать содержимое STATICFILES_DIRS? Я имею в виду где-то после настройки. – jbub

+0

('D: \\ Users \\ Chris \\ Documents \\ GitHub \\ mysite \\ mysite \\ static',) – CJxD

Смежные вопросы