Джанго - Статические картинки не найдены - PullRequest
0 голосов
/ 12 декабря 2011

Привет всем,

Я запускаю приложение Django в режиме разработки.Я собрал статические файлы в каталог / static / images / в моем проекте.

В моем шаблоне я пытаюсь связать пример изображения:

<img src="{{ STATIC_URL }}items/no_image.jpeg"/>
    {{ STATIC_URL }}items/no_image.jpeg

(Нижняя строка печатает дляцели отладки)

На рисунке показано с неработающей ссылкой, а в нижней строке выводится правильный каталог:

 /static/items/no_image.jpeg

Внутри моего проекта у меня есть / static / items / no_imageФайл .jpeg.

В моем файле settings.py у меня есть:

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

Кто-нибудь может помочь?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 12 декабря 2011

Я думаю, это проблема слэша. Попробуйте

STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
2 голосов
/ 14 декабря 2011

Обнаружил проблему.Проблема была в том, что я использовал неправильный каталог.STATIC_URL был назван / site_media /, когда он должен быть / статическим /.Поменял и все теперь работает как вода ...

1 голос
/ 12 декабря 2011

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

Во время разработки вы только добавляете приложение django.contrib.staticfiles, затем задаете STATIC_ROOT, STATIC_URL и STATICFILES_DIRS, как описано здесь .

Затем в вашем базовом urlconf вам нужно добавить правила url для статических файлов, как описано здесь . Вот и все для «режима разработки».

В производственном режиме вы сначала запускаете команду collectstatic, затем перетаскиваете полученный каталог на сервер, на котором работает ваш apache (или nginx или любой другой), и позволяете ему обслуживать этот каталог до www.yoururl.com/ статическая /

Вся история об обработке статических файлов в django почти сводила меня с ума ... и даже сегодня мне приходится несколько минут думать, пытаясь вспомнить или объяснить это. : - / Не беспокойся, если это иногда смущает тебя.

0 голосов
/ 13 декабря 2011

Мне кажется, у меня недавно была похожая проблема.Попробуйте разместить ваши изображения непосредственно в / static / вместо / static / items /.Если вы хотите иметь прямую ссылку на /static/items/sample.jpg, вам нужно добавить / static / items / к вашему STATIC_ROOT в SETTINGS

...