You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DjangoBlog/templates/blog/error_page.html

65 lines
3.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{# gq: #}
{# 1. 模板继承:复用网站基础布局(包含头部导航、底部样式等公共组件)#}
{# 确保错误页面与其他网站风格保持一致,提升用户体验 #}
{% extends 'share_layout/share_layout/base.html' %}
{# 2. 加载自定义标签库与缓存工具 #}
{% load blog_tags %} {# 加载博客专属标签库,用于侧边栏等组件渲染 #}
{% load cache %} {# 加载缓存标签库,可优化页面加载性能(当前模板未直接使用,预留扩展)#}
{# 3. 重写header块根据错误类型动态生成页面标题和SEO元标签 #}
{% block header %}
{# 判断是否为错误页面通过tag_name存在性标识实际逻辑可能依赖视图传递的状态码#}
{% if tag_name %}
{# 根据状态码动态生成页面标题,适配不同错误场景 #}
{% if statuscode == '404' %}
<title>404 NotFound</title> {# 404错误页面未找到 #}
{% elif statuscode == '403' %}
<title>Permission Denied</title> {# 403错误权限不足 #}
{% elif statuscode == '500' %}
<title>500 Error</title> {# 500错误服务器内部错误 #}
{% else %}
<title></title> {# 其他未定义错误:默认空标题 #}
{% endif %}
{# 注释的描述标签可根据需要启用针对具体错误场景定制SEO描述 #}
{% comment %}<meta name="description" content="{{ page_type }}:{{ tag_name }}"/>{% endcomment %}
{% else %}
{# 非错误页面(如正常访问但无筛选条件时):使用网站默认标题 #}
<title>{{ SITE_NAME }} | {{ SITE_DESCRIPTION }}</title>
{% endif %}
{# 通用SEO与社交分享标签保持与网站其他页面一致的元信息 #}
<meta name="description" content="{{ SITE_SEO_DESCRIPTION }}"/> {# 网站SEO描述 #}
<meta name="keywords" content="{{ SITE_KEYWORDS }}"/> {# 网站关键词 #}
{# Open Graph协议标签优化社交平台分享时的展示即使错误页面被分享也能保持品牌一致性#}
<meta property="og:type" content="blog"/> {# 内容类型为博客 #}
<meta property="og:title" content="{{ SITE_NAME }}"/> {# 社交分享标题 #}
<meta property="og:description" content="{{ SITE_DESCRIPTION }}"/> {# 社交分享描述 #}
<meta property="og:url" content="{{ SITE_BASE_URL }}"/> {# 网站基础URL #}
<meta property="og:site_name" content="{{ SITE_NAME }}"/> {# 网站名称 #}
{% endblock %}
{# 4. 重写content块展示错误提示信息 #}
{% block content %}
<div id="primary" class="site-content"> {# 主内容区容器,应用网站全局样式 #}
<div id="content" role="main"> {# 核心内容容器,提升无障碍访问性 #}
{# 错误信息头部:使用归档页样式展示错误提示,保持页面结构一致性 #}
<header class="archive-header">
{# 动态错误消息:{{ message }}由视图传递,显示具体错误描述(如“页面不存在”“您没有访问权限”)#}
<h1 class="archive-title">{{ message }}</h1>
</header><!-- .archive-header -->
</div><!-- #content -->
</div><!-- #primary -->
{% endblock %}
{# 5. 重写sidebar块加载网站侧边栏 #}
{% block sidebar %}
{# 调用自定义标签load_sidebar加载侧边栏参数'i'可能指定错误页面专用侧边栏样式 #}
{# 即使在错误页面也显示侧边栏,帮助用户导航到其他正常页面 #}
{% load_sidebar user 'i' %}
{% endblock %}