我的一个页面,静态网址无法正确呈现。例如:
<link href="//static/static/css/style.css" rel="stylesheet">
这是一个联系表格,这是视图:
def contact(request):
Success = False
email = ""
title = ""
text = ""
if request.method == "POST":
contact_form = ContactForm(request.POST)
if contact_form.is_valid():
Success = True
email = contact_form.cleaned_data['email']
title = contact_form.cleaned_data['title']
text = contact_form.cleaned_data['text']
else:
contact_form = ContactForm()
ctx = {'contact_form':contact_form, 'email':email, 'title':title, 'text':text, 'success':success}
return render_to_response('website/contact.html', ctx, context_instance=RequestContext(request))
模板:
{% if success %}
<p>{{ email }}</p>
<p>{{ title }}</p>
<p>{{ text }}</p>
{% else %}
<form action"." method="POST">
{{ contact_form.as_p }}
<input type="submit" value="Send">
<input type="reset" value="Reset">
</form>
{% endif %}
所有其他页面正在加载,唯一的区别是此表单。有谁知道发生了什么事?
编辑:
呈现网址的模板代码为:
<link href="/{{ STATIC_URL }}static/css/bootstrap.css" rel="stylesheet">
以及相关的settings.py代码:
STATIC_ROOT = os.path.join(os.path.dirname(__file__), "static")
CURRENT_PATH = os.path.abspath(os.path.dirname(__file__).decode('utf-8')).replace('\\', '/')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(CURRENT_PATH, '/static/'),
)
答案 0 :(得分:0)
也许您需要删除重复的“静态”即:
<link href="{{ STATIC_URL }}/css/bootstrap.css" rel="stylesheet">
修改强> 您没有在您认为正在运行的视图上传递请求上下文。当您忽略传入请求上下文时,STATIC_URL是一个空字符串,因此您的链接将正确解析(即/static/css/boostrap.css),但是当您添加请求上下文时,STATIC_URL将替换为'/ static /'呈现不正确的网址。 简而言之,要解决此问题:1)使用上面的代码来引用bootstrap.css,2)在所有视图中包含请求上下文。
有关详细信息,请参阅request context docs。