2013-02-22 1 views
7

У меня есть один проект Django, который выглядит как:Как я могу заставить PyCharm распознавать статические файлы?

/.idea 
/clients 
    /app 
     /static 
      coin.png 
     /templates 
      index.html 
     __init__.py 
     urls.py 
    /clients 
     settings.py 
    manage.py 

В index.html у меня есть (я могу видеть изображение на визуализации):

{% load staticfiles %} 

<img src="{% static 'coin.png' %}"> 

Соответствующие части settings.py:

STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static/') 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    os.path.join(os.path.dirname(__file__), '../static/'), 
) 

INSTALLED_APPS = (
    'django.contrib.staticfiles', 
) 

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.static', 
) 

В структуре проекта я добавил /clients, так как корень проекта Django находится на один уровень от корня репо. Однако все мои {% static %} в этом проекте продолжают получать блики, поскольку они не существуют, хотя Django может их найти. Идеи о том, как разрешить это?

+0

Как определяется STATIC_ROOT в ваших настройках.py? – yole

+0

@yole Я добавил соответствующие части к вопросу. –

+0

@ аналогичная проблема с 'STATIC_ROOT = normpath (join (SITE_ROOT, 'assets'))'. Имеет ли PyCharm некоторые хаки для ручных настроек статического каталога? PyCharm EAP 129.782, django 1.5.1 – nk9

ответ

8

Вам необходимо установить следующие параметры, чтобы сообщить PyCharm где найти корень проекта:

enter image description here

Django settings to set (image)

Вы также можете использовать {{STATIC_URL}}/путь/к/файлы, которые отличаются от pycharm

Это работало чудеса. Хотя это немного странно.

8
STATICFILES_DIRS = (
    'static', 
) 

выше предполагается, что статический реж называется static прямо под корень. Теперь нужно сделать os.path.join. Я пробовал и тестировал это.

+2

Дело в том, что OP имеет каталог 'static' внутри и приложение и, вероятно, внутри еще нескольких приложений. Это вполне допустимый шаблон для статических файлов в Django - это то, что делает второй детектор по умолчанию! https://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-STATICFILES_FINDERS PyCharm должен действительно разбирать это, по крайней мере, для настроек по умолчанию, IMO. cc @KitSunde – frnhr

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

  • Нет связанных вопросов^_^