Django模板继承不提供css?

2024-04-20 07:48:13 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的django项目中,有一些神秘的输出(至少对我作为一个beinner来说)是在我的开发环境中工作时无法理解的。 我想有一个基本模板,其中包括一个静态媒体文件夹中的样式表…这是目前为止的工作…但只是对地址http://localhost/所有其他网址有一个模板继承自基本模板。在

现在http://localhost/的样式表看起来不错……如果我转到http://localhost/hello/,包含的样式表有一个包含body、doctype等的完整的htmldom结构,这是为什么?他以某种方式解析了一个html站点而不是获取css文件。。。在

这里是我的密码:有什么想法吗?在

在网址.py公司名称:

from django.views.static import * 
from django.conf import settings
admin.autodiscover()

urlpatterns = patterns('',
    ('^$',home_view),
    ('^hello/$', hello),
    (r'^admin/', include(admin.site.urls)),
    ('^useragent/$',ua_display_good1),
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', 
)

在视图.py在

^{pr2}$

基本模板:

<!DOCTYPE html>
<html lang="de">
<meta name="description=" content="{{metadescription}}">
<head>
<link rel="stylesheet" type="text/css" href="media/style.css">

<title>{% block title %}{{pagetitle}}{% endblock %}</title>
</head>
<body>
<h1>{% block h1 %}{{ageone}}{% endblock %}</h1>
{% block content %}{% endblock %}
{% block footer %}{% include "footer.tpl" %}
{% endblock %}
</body>
</html>

你好模板:

{% extends "base.tpl" %}
{% block h1 %}Home{% endblock %}
{% block content %}Welcome{% endblock %} 

Tags: django模板localhosthttphelloadmintitlehtml
3条回答

现在您已经将指向css的链接设置为relative"media/style.css"。在home中它解析为"/media/style.css",但在hello中它解析为"/hello/media/style.css"(这提供了hello页面)。在

只需使用如下的绝对css链接:"/media/style.css"。在

可能是因为您对CSS文件有一个相对引用。在

尝试更改:

<link rel="stylesheet" type="text/css" href="media/style.css">

^{pr2}$

所以它总是从根源上寻找媒体/样式.css在

包含样式表的正确方法是

<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}style.css">

相关问题 更多 >