2013-11-28 1 views
2

У меня проблема со статическими файлами на сервере разработки на Django 1.5.4. Я не уверен, что это та же проблема на фактическом производственном сервере (работает Apache), поскольку я нашел решение для того, что работает на данный момент (просто жестко кодируя полный URL-адрес, я знаю, что это плохо, но он получает работу сделанный).Статический файл не найден в представлении Django

Я использую Reportlab для создания PDF-файла для моего проекта, и мне нужно включить в него картинку. Я последовал ответ в другой post:

from django.templatetags.static import static 
url = static('x.jpg') 

К сожалению, ответ я получаю от сервера ошибка ввода-вывода: «Не удалось открыть ресурс„локальный: 8000/статические/изображения/x.jpg“», даже хотя копия и вставка этого в строку URL-адреса ясно показывает мне, что изображение именно там.

Мои настройки относительно статических файлов являются следующие, и они работают на все остальное (CSS, JavaScript и т.д.):

ROOT_PROJECT = os.path.join(os.path.split(__file__)[0], "..") 
STATIC_ROOT = os.path.join(ROOT_PROJECT, 'static') 
STATICFILES_DIRS =() 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 

Спасибо за вашу помощь!

ответ

1

Удостоверьтесь, что django.contrib.staticfiles включен в ваш INSTALLED_APPS.

Обычно существует несколько способов хранения статических файлов.

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

От django documentation:

Your project will probably also have static assets that aren’t tied to a particular app. In addition to using a static/ directory inside your apps, you can define a list of directories (STATICFILES_DIRS) in your settings file where Django will also look for static files.

Например:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
    '/var/www/static/', 
) 

Если вы в производстве затем проверить production deployment для более подробной информации!

+0

Как я уже сказал - он отлично работает со всеми статическими файлами - CSS, Javascript и т. Д. Все они находятся в статической папке (в подпапках js/css) основного приложения без каких-либо проблем. Только это изображение не загружается, если я не укажу точный адрес. Там должно быть что-то еще. – Tobi

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

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