我有一个奇怪的问题 - 我的开发服务器试图通过使用错误的URL来提供管理静态。
使用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',
)
奇怪的是,我的自定义应用程序通过网址提供静态规范 本地主机:8000 /静态/ CSS /嗒嗒
但管理员使用
[24 / Nov / 2013 18:47:41]“GET /admin/static/admin/css/base.css HTTP / 1.1”404 4316
伙计们,严肃地说,前缀/ admin / static的来源是什么? 0_o 我使用像ADMIN_MEDIA_PREFIX这样的弃用的东西。
基本管理模板使用 {%static“admin / 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)
哪个接缝好;
我很困惑,帮帮我)
答案 0 :(得分:2)
您的STATIC_URL
不是以斜杠开头,因此将其视为相对网址。因此你会得到:
/admin/
(管理员所在的位置),static/
(您的STATIC_URL
)和admin/css/base.css
(文件所在的位置)。换句话说,这就是为什么它要求/admin/static/admin/css/base.css
。
您应该在STATIC_URL
添加斜杠以请求/static/admin/css/base.css
。