python - django admin static 服务于错误的 url

标签 python django django-templates django-admin django-staticfiles

我有一个奇怪的问题 - 我的开发服务器试图通过使用错误的 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',
)

奇怪的是,我的自定义应用程序通常通过 url 提供静态服务,例如 本地主机:8000/static/css/blah

但管理员使用

[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)

哪个接缝没问题;

我很困惑,帮帮我)

最佳答案

您的 STATIC_URL 不是以斜杠开头,因此它被视为相对 URL。因此你会得到:

  • /admin/(管理员所在的位置),
  • static/(您的 STATIC_URL),以及
  • admin/css/base.css(文件所在的位置)。

换句话说,这就是它请求 /admin/static/admin/css/base.css 的原因。

您应该在 STATIC_URL 中添加一个斜杠,使其请求 /static/admin/css/base.css

关于python - django admin static 服务于错误的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20179668/

相关文章:

django - inlineformset_factory 小部件又名字段样式

django - 在Django中检索支持时区的DateTimeField

python - 如何根据url请求更改django listview中的模板名称?

django - 我如何在管理员之外复制 admin.TabularInline(在用户端?)

python - 实时动态更新 django 模板

django - Django 管理面板中特定字段的权限

python - python3上的简单书店程序

python - 将 python pandas 数据帧的行名称提取为 pandas 系列

python - 如何使用 Python 在 Mac 中控制鼠标?

python - 无法用相应列中最后三行的平均值替换数据帧最后一行中的零,同时保留非零值