【问题标题】:why i can't use django admin app's resource为什么我不能使用 django 管理应用程序的资源
【发布时间】:2015-12-27 23:47:37
【问题描述】:

我想在我的项目中重用django的contrib“admin”资源,“admin”有一个静态目录,我想重用的是“static/admin/image/selector-icons.svg”。

我有这样的settings.py:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

我也试过了:

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT,'static'),
    file path of admin's static
)

又失败了。

“admin”可以在其“widgets.css”中使用“static/admin/image/selector-icons.svg”

.selector-add {
    background: url(../img/selector-icons.svg) 0 -96px no-repeat;
    cursor: default;
}

但我不能在我的项目中这样做:

.selector-add {
    background: url(admin/img/selector-icons.svg) 0 -96px no-repeat;
    cursor: default;
}

chrome的控制台说404错误!但是

.selector-add {
    background: url(admin/img/selector-icons.gif) 0 -96px no-repeat;
    cursor: default;
}

工作。

我发现在“admin”渲染到 html 中,“selector-icons.svg”将转换为“selector-icons.gif”,如下图所示:

所以我的问题是:

第一:如何复用“admin”资源?

第二个:为什么将“selector-icons.svg”改为“selector-icons.svg”?

【问题讨论】:

  • 你不必将admin的静态文件路径添加到STATICFILES_DIRS,只要admin应用在@中就会被AppDirectoriesFinder找到987654330@.
  • @Alasdair 是的,我想是的,我只是试试。

标签: python css django svg


【解决方案1】:

在尚未发布的 Django 1.9 中,图标已从 svg 更改(参见 ticket 20597)。

在旧版本的 Django 上,包括当前版本 1.8,图标是 gif。

您可以在升级之前使用 gif,或者如果您现在确实需要 svg,您可以克隆存储库并将 the svgs 添加到您的静态文件中。

【讨论】:

  • 哦,我想你误会了我的问题,我的 django 版本是 1.8.4,它已经有了这些 svgs。
  • 我很确定 Django 1.8.4 没有 svg 图标。查看 GitHub 上的images directory
  • 哦,谢谢你,我发现我的错误,我阅读了 1.9 的源代码,我在 1.8.4 中开发,谢谢你!!!!
猜你喜欢
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2017-01-09
  • 2013-04-28
  • 2020-01-20
  • 2020-02-08
相关资源
最近更新 更多