2

我有一個奇怪的問題 - 我的開發服務器試圖通過使用錯誤的url服務管理靜態。django admin static服務於錯誤的網址

使用Django 1.6

我主要的URLconf

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^$', include('dash.urls')), 
    ) 


urlpatterns += staticfiles_urlpatterns() 

和設置都像

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 
locale = lambda path: os.path.join(BASE_DIR, path) 
STATIC_URL = "static/" 
MEDIA_URL = "media/" 
STATIC_ROOT = locale("static") 
MEDIA_ROOT = locale("media") 

應用

INSTALLED_APPS = (
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
) 

奇怪的是,我的自定義應用程序供應小號tatic normaly由像 本地主機的URL:8000 /靜態/ CSS /等等

但管理一個使用

[24 /月/ 2013 18時47分41秒]「GET /管理/靜態/管理/ CSS /base.css HTTP/1.1「404 4316

夥計們,嚴肅地說,前綴/ admin/static的來源是什麼? 0_o 我是nat,使用像ADMIN_MEDIA_PREFIX這樣的廢棄的東西。

基地管理員模板使用 {%靜態 「管理/ CSS/base.css」 %}標籤,其代碼是

from django.conf import settings 
from django.template import Library 

register = Library() 

if 'django.contrib.staticfiles' in settings.INSTALLED_APPS: 
    from django.contrib.staticfiles.templatetags.staticfiles import static 
else: 
    from django.templatetags.static import static 

static = register.simple_tag(static) 

其中接縫確定;

我很困惑,幫我)

回答

2

STATIC_URL不以斜槓所以它是一個相對URL處理開始。因此,你會得到:

  • /admin/(這是管理的),
  • static/(您STATIC_URL)和
  • admin/css/base.css(這是該文件)。

換句話說,這就是爲什麼它要求/admin/static/admin/css/base.css

您應該在您的STATIC_URL上添加斜線以使其請求/static/admin/css/base.css

+0

哦,那麼明顯。 Thanx,它幫助) –