Ale*_*kin 4 python django django-templates django-admin django-staticfiles
我有一个奇怪的问题 - 我的开发服务器试图通过使用错误的网址来提供管理静态服务。
使用 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()
Run Code Online (Sandbox Code Playgroud)
设置就像
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")
Run Code Online (Sandbox Code Playgroud)
应用
INSTALLED_APPS = (
'django.contrib.staticfiles',
'django.contrib.admin',
)
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我的自定义应用程序通过像 localhost:8000/static/css/blah 这样的 url 通常提供静态服务
但管理员使用
[2013年11月24日18:47:41]“获取/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)
Run Code Online (Sandbox Code Playgroud)
接缝没问题;
我很困惑,请帮助我)
您的 URLSTATIC_URL不以斜杠开头,因此它被视为相对 URL。因此你会得到:
/admin/(这是管理员所在的位置),static/(你的STATIC_URL),以及admin/css/base.css(这是文件所在的位置)。换句话说,这就是它要求的原因/admin/static/admin/css/base.css。
您应该在您的内容中添加斜杠STATIC_URL以使其成为请求/static/admin/css/base.css。
| 归档时间: |
|
| 查看次数: |
3745 次 |
| 最近记录: |