【问题标题】:Django filebrowser settingsDjango 文件浏览器设置
【发布时间】:2011-04-20 19:22:40
【问题描述】:

希望这对于任何有 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/"

如果这看起来有点基本,任何建议表示赞赏和道歉,我只是真正地掌握了这一点。

谢谢。

【问题讨论】:

    标签: django settings


    【解决方案1】:

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

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

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

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

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

    python manage.py collectstatic
    

    【讨论】:

      【解决方案2】:

      来自installation docs

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

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

      编辑:

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

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

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

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

      【讨论】:

      • 嗨,我尝试运行 python manage.py collectstatic 并得到以下结果:0 个静态文件复制到“/home/dan/testsite/media/”(659 未修改)。你有我可以查看的 settings.py 文件的工作示例吗?谢谢。
      • 抱歉,我现在不在电脑旁,但如果没有其他人回答,我会看看编辑我的帖子。
      【解决方案3】:

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

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-30
        • 2014-05-07
        • 2011-06-17
        • 2014-03-09
        • 2011-02-09
        • 1970-01-01
        相关资源
        最近更新 更多