Настройки браузера файлов Django - PullRequest
2 голосов
/ 20 апреля 2011

Надеюсь, это будет легко для любого, кто имеет опыт работы с Django. Я пытаюсь разобраться с этим фреймворком и Python в целом и скачал приложение filebrowser.

Он позволяет мне создавать папки, но не может найти его css.

Просматривая страницу, я получаю в консоли следующее:

[20/Apr/2011 14:05:10] "GET /admin/ HTTP/1.1" 200 11282
[20/Apr/2011 14:05:12] "GET /admin/filebrowser/browse/ HTTP/1.1" 200 14747
[20/Apr/2011 14:05:12] "GET /media/filebrowser/css/filebrowser.css HTTP/1.1" 404 2324

Третья строка отображается желтым цветом, так как Django не может найти файл css.

Предположительно, я просто отсутствует / у меня неправильная строка в файле settings.py, но я не уверен, что мне нужно изменить.

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

Это соответствующие (я думаю) строки из моих настроек:

import os
SITE_ROOT = os.path.realpath(os.path.dirname(__file__)`)
MEDIA_ROOT = os.path.join(SITE_ROOT, 'media/uploads/')
MEDIA_URL = '/media/'
FILEBROWSER_DIRECTORY = ''
STATIC_ROOT = os.path.join(SITE_ROOT, 'media/') 
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"

Любой совет приветствуется и приносит извинения, если он кажется немного базовым, я только начинаю понимать это на самом деле.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 21 апреля 2011

Надеюсь, я смогу правильно ответить на ваш вопрос.

Если вы используете последнюю версию Django 1.3 и Django-Grapelli 2.3, то вам нужна последняя версия Django-Filebrowser 3.3.Это потому, что старая версия Filebrowser 3.2 и ниже не поддерживает статический файл, который по умолчанию включен в Django 1.3.

Что вам нужно сделать, это подключить Filebrowser 3.3 из веток к вашему питону.site-packages:

svn checkout http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3_3/filebrowser filebrowser 

Теперь вы можете запустить, чтобы получить обозреватель файлов в вашей статической папке:

python manage.py collectstatic
0 голосов
/ 05 ноября 2012

для людей, работающих со старыми версиями, обходной путь будет:

from django.contrib.staticfiles.finders import AppDirectoriesFinder
from django.contrib.staticfiles.storage import AppStaticStorage


class AppMediaStorage(AppStaticStorage):
    source_dir = 'media'

class MediaFinder(AppDirectoriesFinder):
    storage_class = AppMediaStorage

И затем добавление функции MediaFinder в STATICFILES_FINDERS

0 голосов
/ 20 апреля 2011

Из installation docs:

Вы собрали / скопировали / скопировали файлы?

Если выне используя статические файлы, вы можете либо использовать символическую ссылку из своего медиа-каталога (предоставленного MEDIA_ROOT и MEDIA_URL), либо скопировать медиа-файлы браузера файлов в свой медиа-каталог.Не забудьте соответственно изменить настройки.

edit:

Похоже, что статические файлы для django-filebrowser хранятся:

filebrowser
|_ locale
|_ management
|_ media
|  |_ filebrowser
|     |_ css
|     |_ img
|     |_ js
|_ templates
|_ templatetags

ThisПохоже на старую настройку приложения django staticfiles, где файлы мультимедиа хранились в каталогах media приложений (прокрутите вниз до этих docs)

Есть несколько способов обойти это, переименовав этот каталог, скопировав / вставив символическую ссылку или добавив каталог в STATICFILES_DIR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...