【发布时间】: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 是的,我想是的,我只是试试。