Django filebrowser设置

时间:2011-04-20 19:22:40

标签: django settings

希望对于任何有Django经验的人来说,这将是一个简单的选择。 我试图掌握这个框架和Python,并下载了文件浏览器应用程序。

它允许我创建文件夹OK,但它无法找到它的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 个答案:

答案 0 :(得分:2)

我希望我能正确回答你的问题。

如果您使用的是最新版本的Django 1.3和Django-Grapelli 2.3,那么您需要最新版本的Django-Filebrowser 3.3。这是旧版本的Filebrowser 3.2及以下版本,不支持静态文件,默认情况下包含在Django 1.3中。

你需要做的是将Filebrowser 3.3从分支到你的python site-packages:

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

现在您可以运行将文件浏览器放入静态文件夹:

python manage.py collectstatic

答案 1 :(得分:0)

来自installation docs

您是否已收集/符号链接/复制文件?

  

如果你没有使用静态文件,你   可以使用你的符号链接   媒体目录(由MEDIA_ROOT提供   和MEDIA_URL)或复制文件浏览器   媒体文件到您的媒体目录。   不要忘记更改设置   相应

编辑:

看起来存储了django-filebrowser的静态文件:

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

这看起来像django staticfiles应用程序的旧设置,其中媒体文件存储在应用程序的media目录中(滚动到这些docs的底部)

有几种方法可以通过重命名该目录,复制/符号链接或将目录添加到STATICFILES_DIR

来解决此问题。

答案 2 :(得分:0)

对于使用旧版本的人来说,解决方法是:

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