Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django admin static在错误的url中提供服务_Python_Django_Django Templates_Django Admin_Django Staticfiles - Fatal编程技术网

Python django admin static在错误的url中提供服务

Python django admin static在错误的url中提供服务,python,django,django-templates,django-admin,django-staticfiles,Python,Django,Django Templates,Django Admin,Django Staticfiles,我有一个奇怪的问题-我的开发服务器试图通过使用错误的url为管理员静态服务 使用django 1.6 我的主要工作 from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), url(r'^$', include('dash.urls')), ) urlpatterns += stati

我有一个奇怪的问题-我的开发服务器试图通过使用错误的url为管理员静态服务

使用django 1.6

我的主要工作

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")
应用程序

奇怪的是,我的自定义应用程序通常通过URL提供静态服务,比如 localhost:8000/static/css/blah

但是管理员使用

[24/Nov/2013 18:47:41]“GET/admin/static/admin/css/base.css HTTP/1.1”4044316

伙计们,说真的,前缀/admin/static的起源是什么?0_o 我正在使用不推荐的东西,比如ADMIN\u MEDIA\u前缀

基本管理模板使用 {%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)
哪一条线可以


我很困惑,帮帮我)

您的
静态URL
不是以斜杠开头的,因此它被视为相对URL。因此,您将得到:

  • /admin/
    (管理员所在的位置)
  • static/
    (您的
    静态URL
    ),以及
  • admin/css/base.css
    (文件所在位置)
换句话说,这就是它请求
/admin/static/admin/css/base.css
的原因


你应该在你的
静态URL
上加一个斜杠,让它请求
/STATIC/admin/css/base.css

哦,太明显了。Thanx,这很有帮助)
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)