2015-09-30 28 views
0

我想在我的項目中重用django的contrib「admin」資源,「admin」有一個靜態目錄,即「static/admin/image/selector-icons.svg」我想重複使用。爲什麼我不能使用django管理應用程序的資源

我有這樣的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 
) 

再次失敗。

「管理員」可以使用「靜態/管理/圖像/選擇器icons.svg」在其「widgets.css」像

.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; 
} 

鉻的控制檯說404錯誤!但是

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

工作。

,我在「管理」找到轉成HTML格式,「選擇-icons.svg」將轉化爲「選擇-icons.gif」,就像下圖: in red circle the css shows "selector-icons.gif", not "selector-icons.csv"

所以我的問題是:

第一:如何重用「admin」資源?

秒:爲什麼「selector-icons.svg」爲「selector-icons.svg」?

+0

只要管理應用程序位於INSTALLED_APPS中,您就不必將管理員的*靜態*文件路徑添加到'STATICFILES_DIRS'中,只要AppDirectoriesFinder就能找到它。 – Alasdair

+0

@Alasdair是的,我想是的,我只是嘗試。 – lsaturn

回答

1

Django 1.9中的圖標已被更改爲svg,但尚未發佈(請參閱ticket 20597)。

在舊版本的Django上,包括當前版本1.8,圖標都是gif。

您可以在升級之前使用gif,或者現在真的需要svgs,您可以克隆存儲庫並將the svgs添加到您的靜態文件中。

+0

謝謝,但爲什麼「管理員」可以使用自己? – lsaturn

+0

哦,我想你誤解了我的問題,我的django版本是1.8.4,它已經有了這些svgs。 – lsaturn

+0

我很確定Django 1.8.4沒有svg圖標。在GitHub上查看[images目錄](https://github.com/django/django/tree/1.8.4/django/contrib/admin/static/admin/img)。 – Alasdair

相關問題