django-template: HTML链接标签包含基础页面的整个HTML内容
index.html
<html>
<head>
<link href="static/style.css" rel="stylesheet" type="text/css" />
<title>I want to</title>
</head>
<body>
{% block header %}
<div id="header-wrap"></div>
{% endblock %}
<div id="container">
{% block error %} {% endblock %}
{% block content %}{% endblock %}
</div>
</body>
</html>
page.html
{% extends 'index.html' %}
{% if error %}
{% block error %}
{{ error }}
{% endblock %}
{% endif %}
{% block content %}
<p><b>Page</b>: {{ page.language }}</p>
<p>views: {{ page.page_views}}</p>
<form action='/suggest' method='post'>
<textarea name='suggest' rows='10' cols='100'></textarea>
<input type='hidden' name='page_name' value={{ page.language }}>
<input type='submit' value='suggest'>
</form>
{% for suggestion in suggestions %}
<p>Suggestion: {{ suggestion.text }}</p>
<p>Votes: {{ suggestion.votes }}</p>
{% endfor %}
{% endblock %}
views.py 返回的内容
return render_to_response('page.html', {'page': page, 'suggestions': suggestions})
问题:
- 当我查看首页(index.html
)时,头部看起来放得很合适(一切都很好)
- 但是当我查看某个具体页面时,头部没有出现。我用火狐的开发者工具检查了一下,发现link标签里面包含了整个index.html
的内容
<head>
<link type="text/css" rel="stylesheet" href="static/style.css">
<html>
<head>
<link href="static/style.css" rel="stylesheet" type="text/css" />
<title>I want to learn</title>
</head>
<body>
<div id="header-wrap"></div>
<div id="container">
<a href=/page/python>python</a>
<a href=/page/page1>page1</a>
<a href=/page/page1>page2</a>
<a href=/page/page3>page3</a>
</div>
</body>
</html>
</link>
我该如何解决这个问题?
1 个回答
1
刚刚解决了这个问题 :
- 页面上的样式表路径是相对路径(static/style.css),而不是
绝对路径(*/*static/style.css)。使用绝对路径就能让它正常工作
<head>
<link type="text/css" rel="stylesheet" href="/static/style.css">
<html>