2014-08-31 4 views
2

У меня возникли проблемы с перемещением моей «статической» папки из проекта «django_project» базы. По моему опыту, Django искал «статическую» папку внутри базового проекта, но мне это казалось просто уродливым, и я хотел переместить его рядом со всеми другими приложениями Django.Django - статическая папка не в базовом проекте

Вот моя текущая установка каталога файлов.

/home/django/django_project/ 
    /django_project/ 
    /myapplication/ 
    /templates/ 
    /static/ 

Прямо сейчас, папка «шаблоны» отлично работает, и я могу без труда найти все файлы шаблонов. Тем не менее, я не могу найти статические файлы, статическая настройка всегда меня обманывает.

Вот мой файл settings.py для базового проекта django_project.

... 

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

STATIC_URL = '/static/' 

# Go back one directory from this file and move into the 'static' folder 
STATICFILES_DIRS = (
    os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'static')), 
) 

# Template files (HTML) 

TEMPLATE_DIRS = (
    '/home/django/django_project/templates/', 
) 

Может кто-нибудь выписать STATIC_URL или STATICFILES_DIR так, чтобы он указывал на мой «дом/Джанго/django_project/статический//» папку? Заранее спасибо.

+0

У вас есть ошибки? Или просто 404 при попытке получить доступ к статическому файлу? –

+0

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

+0

Моя единственная мысль, что '__file__' - это не то, о чем вы думаете. Вы пробовали распечатать значение STATICFILES_DIRS в отладку после его установки? Какую ценность у него есть? –

ответ

-2

Попробуйте это в settings.py

STATIC_ROOT = «/ путь/к/статические/папки»

Просто измените правую сторону к абсолютному пути к вашей статической папке.

+0

Нет, это не сработало –

0

Попробуйте что-то вроде этого, оно намного чище.

STATIC_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'static')) 

STATIC_URL = '/static/' # You may find this is already defined as such. 

STATICFILES_DIRS = (
STATIC_PATH, 
) 

STATICFILE_DIRS - указывает местоположение статической директории на локальном диске

STATIC_URL - Определяет URL для доступа к статическим СМИ с веб-сервера.

Скажите, что у вас есть файл dragontoothless.jpg в вашем статическом каталоге. Чтобы обслуживать его со страницы html, вы должны использовать что-то вроде этого.

<img src="/static/dragontoothless.jpg" /> 

Надеюсь, это поможет!

0

Примечание:

os.path.abspath(filename) возвращает абсолютный путь, как видно из текущего рабочего каталога. Он не проверяет, действительно ли файл существует.

os.path.dirname будет искать каталог Вернуть имя каталога имя пути path.To получить имя-каталога абсолютного пути, используйте os.path.dirname(os.path.dirname(__file__))

base_dir = os.path.dirname (os.path.dirname (файл))

И статический URL является

STATIC_URL = '/static/' 

STATICFILES_DIRS = [ os.path.присоединиться (base_dir, "статический"), ]

+0

Решено ли ваше решение? –

0

решаемые это, помещая статический файл в другую папку и создать staticfiles реж как: STATICFILES_DIRS = [os.path.join (base_dir 'статический/другую папку'),]

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