首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django文件浏览器设置

Django文件浏览器设置
EN

Stack Overflow用户
提问于 2011-04-21 03:22:40
回答 3查看 2.6K关注 0票数 2

希望这对任何有Django经验的人来说都是一件容易的事情。我正在尝试掌握这个框架和一般的Python,并下载了文件浏览器应用程序。

它允许我创建文件夹OK,但是它无法找到它的css。

在查看页面时,我在控制台中看到以下内容:

代码语言:javascript
复制
[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文件中遗漏了/有一个不正确的行,但是我不确定需要修改什么。

有人能帮上忙吗?

以下是我的设置中的相关(我认为)行:

代码语言:javascript
复制
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/"

感谢任何建议,如果这看起来有点基础的话,我真的只是刚刚开始掌握这一点。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-21 08:43:01

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

如果你使用的是最新版本的Django 1.3和Django-Grapelli 2.3,那么你需要最新版本的Django-Filebrowser 3.3。这是因为旧版本的Filebrowser 3.2及更低版本不支持Django 1.3中默认包含的静态文件。

您需要做的是将Filebrowser 3.3从分支svn到您的python站点包:

代码语言:javascript
复制
svn checkout http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3_3/filebrowser filebrowser 

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

代码语言:javascript
复制
python manage.py collectstatic
票数 2
EN

Stack Overflow用户

发布于 2011-04-21 03:38:50

你收集/符号链接/复制文件了吗?

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

编辑:

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

代码语言:javascript
复制
filebrowser
|_ locale
|_ management
|_ media
|  |_ filebrowser
|     |_ css
|     |_ img
|     |_ js
|_ templates
|_ templatetags

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

有几种方法可以解决此问题,可以通过重命名该目录、复制/symlinking或将该目录添加到STATICFILES_DIR

票数 0
EN

Stack Overflow用户

发布于 2012-11-05 20:52:57

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

代码语言:javascript
复制
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

然后在STATICFILES_FINDERS中添加MediaFinder函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5735543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档