ASPCMS 模板标签大全与调用说明:站点变量、导航、列表、详情、分页、留言、URL、IIS 部署完整速查

把 ASPCMS 全部常用模板标签按作用域、列表、详情、工具四级分类整理,配 head/foot 完整范例、navlist 多级导航、newslist/productlist 等四大列表、产品详情字段、面包屑 position、留言 gbook、URL 重写规则、IIS 启用 ASP、UTF-8 编码、SQL 注入历史漏洞防护与 11 项 FAQ。一份接手老 ASPCMS 模板可直接当字典查的速查手册。

张文保 更新 38 分钟阅读 3,738 阅读

ASPCMS 是国内一套基于 ASP 的轻量企业建站系统,2010 年前后非常流行。它的模板开发模型采用一种类似 Smarty 的标签语法({aspcms:xxx}),开发者只要写好 HTML 框架、把这些标签塞到对应位置就能生成完整站点。但 ASPCMS 官方文档常年没更新、社区资料分散在论坛各处,导致很多接手老模板的开发者卡在"忘记某个调用怎么写"的反复 Google 上。本文把所有常用的 ASPCMS 模板标签按"作用域 → 列表 → 详情 → 工具"的层级整理成一份完整的速查手册,并补充两类实战内容:(1) 真实模板代码片段示例;(2) 在 IIS / Windows Server 老环境上 ASPCMS 模板调试常见踩坑。覆盖 ASPCMS 2.x 与 3.x 主流分支。

ASPCMS 模板架构与变量作用域基础

模板目录结构

典型的 ASPCMS 模板目录在站点根 /Templates/ 下,每个子目录是一套主题:

/Templates/default/
  - index.html       (首页模板)
  - about.html       (单篇文章模板)
  - newslist.html    (新闻列表模板)
  - news.html        (新闻详情模板)
  - productlist.html (产品列表模板)
  - product.html     (产品详情模板)
  - piclist.html, pic.html
  - downlist.html, down.html
  - gbook.html       (留言板模板)
  - head.html, foot.html, side.html (辅助片段)
  - css/, js/, images/

ASPCMS 路由会根据访问的 URL 决定使用哪个模板:访问 /news/?1_5.html 会渲染 news.html,/newslist/?1_1.html 会渲染 newslist.html,依此类推。

标签语法总览

ASPCMS 把标签分三类:

  • 单行变量{aspcms:sitetitle} 这种直接输出当前作用域里某个变量值。
  • 循环块{aspcms:newslist size=15}...{/aspcms:newslist} 这种成对出现的标签,中间放循环模板。
  • 条件判断{if:条件}...{end if},类似 if/else 的逻辑控制。

循环块内部用方括号语法访问当前迭代项的字段:[newslist:title][newslist:link]。这些方括号变量只在对应循环块内有效,离开块就识别不到。

变量作用域三级

ASPCMS 的作用域由外到内三层:

  1. 全局站点变量{aspcms:sitetitle} 等以 aspcms 开头的单行标签,任何模板任何位置都能用。
  2. 当前页面变量{aspcms:sortname}{aspcms:sortid}{aspcms:parentsortid} 等,在列表页或详情页有意义,首页通常为空。
  3. 循环局部变量[newslist:title] 等方括号变量,只在 {aspcms:newslist}...{/aspcms:newslist} 块内有意义。

理解这三层是写出来的标签能否正确显示数据的关键——比如在首页直接写 [news:title] 不在循环块里,结果就是空字符串,不报错但前端啥也没有。

站点全局信息标签

基础信息

这一组标签从后台"系统设置"读取,在 head.html 和 foot.html 里高频使用:

标签含义典型用法
{aspcms:sitepath}站点根路径(适配子目录部署)所有静态资源路径前缀
{aspcms:languagepath}多语言版本路径多语言站点根
{aspcms:siteurl}站点完整 URL(含协议)分享、canonical
{aspcms:sitelogo}LOGO 图片相对路径head 里 img src
{aspcms:sitetitle}站点标题head 里 title 标签
{aspcms:additiontitle}附加标题(栏目分页时拼接)title 拼接
{aspcms:sitekeywords}站点 meta keywordshead meta
{aspcms:sitedesc}站点 meta descriptionhead meta
{aspcms:defaulttemplate}当前主题目录名静态资源前缀
{aspcms:copyright}版权信息foot 版权区

公司联系信息

从后台"公司信息"读取,常用在底部信息栏和联系页:

标签含义
{aspcms:companyname}公司名称
{aspcms:companyaddress}公司地址
{aspcms:companypostcode}邮政编码
{aspcms:companycontact}联系人
{aspcms:companyphone}电话号码
{aspcms:companymobile}手机号码
{aspcms:companyfax}公司传真
{aspcms:companyemail}电子邮箱
{aspcms:companyicp}备案号
{aspcms:statisticalcode}统计代码(百度统计、CNZZ)

head.html 完整范例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>{aspcms:sitetitle}{aspcms:additiontitle}</title>
  <meta name="keywords" content="{aspcms:sitekeywords}">
  <meta name="description" content="{aspcms:sitedesc}">
  <link rel="canonical" href="{aspcms:siteurl}">
  <link rel="stylesheet" href="/{aspcms:sitepath}Templates/{aspcms:defaulttemplate}/css/style.css">
</head>
<body>
  <header>
    <a href="/{aspcms:sitepath}{aspcms:languagepath}">
      <img src="{aspcms:sitelogo}" alt="{aspcms:sitetitle}">
    </a>
  </header>

导航与多级菜单

navlist 一级导航

所有顶级栏目的循环输出:

{aspcms:navlist type=0}
<a href="[navlist:link]">[navlist:name]</a>
{/aspcms:navlist}

type=0 表示从根级开始。type=4 等数字表示从特定父分类下取子分类,等于"固定分类列表"。

subnavlist 二级及以下

嵌套在 navlist 内:

{aspcms:navlist type=0}
  <li><a href="[navlist:link]">[navlist:name]</a>
    {aspcms:subnavlist type=[navlist:sortid]}
      <a href="[subnavlist:link]">[subnavlist:name]</a>
    {/aspcms:subnavlist}
  </li>
{/aspcms:navlist}

当前位置高亮

列表页或详情页里高亮当前所在分类,用 if 标签判断 sortid:

{aspcms:navlist type=0}
  <a href="[navlist:link]" {if:[navlist:sortid]={aspcms:sortid}} class="active" {end if} >
    [navlist:name]
  </a>
{/aspcms:navlist}

栏目类型

navlist 返回的栏目数据 type 字段告诉你这个栏目是什么形态,常用于决定展示样式:

type 值栏目形态
1单篇文章(about)
2文章列表(newslist)
3产品列表(productlist)
4下载列表(downlist)
5招聘列表
6相册列表(piclist)
7外部链接

列表标签:news / product / pic / down 四大类

新闻列表 newslist

输出当前分类下的新闻列表:

{aspcms:newslist size=15 order=time}
  <li>
    <a href="[newslist:link]" title="[newslist:title]">[newslist:title len=40]</a>
    <span>[newslist:date style=yy-m-d]</span>
    <span>[newslist:visits]</span>
  </li>
{/aspcms:newslist}

参数说明:

  • size:每页数量,默认 10。
  • order:排序字段,可选 id(按 ID)、time(按时间)、visits(按浏览量)。
  • [newslist:title len=40]:标题截断到 40 字符。
  • [newslist:date style=yy-m-d]:日期格式,可选 yy-m-d 输出 2024-01-01y-m-d 输出 24-01-01m-d 输出 01-01

产品列表 productlist

{aspcms:productlist size=20 order=time}
  <div class="product-card">
    <a href="[productlist:link]">
      <img src="[productlist:pic]" alt="[productlist:title]">
    </a>
    <a href="[productlist:link]" title="[productlist:title]">
      [productlist:title len=10]
    </a>
  </div>
{/aspcms:productlist}

productlist 比 newslist 多了 [productlist:pic],是产品的封面图(通常是缩略图路径)。

图片列表 piclist

{aspcms:piclist size=20 order=time}
  <a href="[piclist:link]">
    <img src="[piclist:pic]" alt="[piclist:title]">
  </a>
{/aspcms:piclist}

下载列表 downlist

{aspcms:downlist size=15 order=time}
  <li>
    <a href="[downlist:link]">[downlist:title len=50]</a>
    <span>[downlist:date style=yy-m-d]</span>
    <span>[downlist:visits]</span>
  </li>
{/aspcms:downlist}

首页跨分类调用

list 标签默认只取当前分类的数据,要在首页跨分类取数据用 {aspcms:news}{aspcms:product}{aspcms:content} 这种"非 list 后缀"标签,加 sort=分类ID 参数:

<!-- 首页公司新闻(sort=2 假设是新闻分类 ID) -->
{aspcms:news sort=2 num=5}
  <li><a href="[news:link]">[news:title len=20]</a> [[news:date style=m-d]]</li>
{/aspcms:news}

<!-- 首页推荐产品 -->
{aspcms:product sort=4 num=15 order=isrecommend}
  <li>
    <a href="[product:link]">
      <img src="[product:pic]">[product:title]
    </a>
  </li>
{/aspcms:product}

order 参数除了 time/id/visits 还可以是 isrecommend(推荐排序)、top(置顶排序)。

详情页字段访问

单篇文章详情 about

about.html 模板里直接用 [about:xxx] 不需要循环包裹,因为单篇文章的作用域已经在详情页范围内自动激活:

字段含义
[about:info]正文 HTML
[about:desc]描述(前 100 字摘要)

新闻详情 news

字段含义
[news:title]新闻标题
[news:desc]描述(前 100 字)
[news:source]来源
[news:date]发布日期
[news:visits]浏览量
[news:info]正文 HTML

产品详情 product

product 比 news 多了 [product:pic](封面图)。其他字段(title、desc、source、date、visits、info)一致。

图片详情 pic 和下载详情 down

pic 详情字段和 product 类似(pic、title、desc、source、date、visits、info)。down 详情多了 [down:downurl](下载地址)。

详情页前后篇导航

<div class="article-nav">
  <span>上一篇:{aspcms:prev}</span>
  <span>下一篇:{aspcms:next}</span>
</div>

详情正文分页

正文超长想分页时,在编辑器里手动插入分页符,模板里用 {aspcms:page} 输出分页条。

分页条 pagenumber

列表页底部的分页器:

<div class="pagination">
  [newslist:pagenumber len=5]
</div>

不同列表对应不同的 pagenumber 标签:

  • [newslist:pagenumber len=5] 新闻列表
  • [productlist:pagenumber len=5] 产品列表
  • [downlist:pagenumber len=5] 下载列表
  • [piclist:pagenumber len=5] 图片列表

len 参数是页码显示数量。len=5 表示同时显示 5 个页码(如 1 2 3 4 5)。

当前分类与位置标签

当前分类信息

标签含义
{aspcms:sortname}当前分类名称
{aspcms:sortid}当前分类 ID
{aspcms:parentsortid}当前分类的父分类 ID

面包屑:position

<nav class="breadcrumb">
  <a href="/{aspcms:sitepath}{aspcms:languagepath}">首页</a>
  {aspcms:position}
    > <a href="[position:link]">[position:name]</a>
  {/aspcms:position}
</nav>

position 块会自动迭代当前页面的祖先链路(首页 > 一级 > 二级 > 当前),开发者只要写好"一级条目"的样式即可。

侧边栏当前栏目下的子栏目

{aspcms:navlist type={aspcms:parentsortid}}
  <li>
    <a href="[navlist:link]"
       {if:[navlist:sortid]={aspcms:sortid}} class="active" {end if}>
      [navlist:name]
    </a>
  </li>
{/aspcms:navlist}

把 navlist 的 type 设置为 {aspcms:parentsortid},就只输出当前栏目同级的兄弟栏目(用于侧边导航高亮当前位置)。

留言板 gbook 与 gbooklist

调用留言表单

<div class="gbook-form">
  {aspcms:gbook}
</div>

这一行会在前端渲染出 ASPCMS 默认的留言表单(标题、姓名、内容输入框 + 提交按钮)。表单的样式是后台留言模块的全局样式。

留言列表

{aspcms:gbooklist size=10 order=time}
  <div class="gbook-item">
    <h4>[gbooklist:title]</h4>
    <p>[gbooklist:name] · [gbooklist:wdate style=y-m-d]</p>
    <p>[gbooklist:winfo]</p>
    {if:[gbooklist:status]}
      <div class="reply">
        <p>管理员回复 · [gbooklist:rdate style=y-m-d]</p>
        <p>[gbooklist:rinfo]</p>
      </div>
    {end if}
  </div>
{/aspcms:gbooklist}

字段对照:

  • [gbooklist:title] 留言标题
  • [gbooklist:name] 留言人姓名
  • [gbooklist:wdate] 留言时间
  • [gbooklist:winfo] 留言内容
  • [gbooklist:status] 是否已回复(用于 if 判断)
  • [gbooklist:rdate] 回复时间
  • [gbooklist:rinfo] 回复内容

链接规则与 URL 解析

ASPCMS 默认 URL 格式

页面类型URL 形式
单篇文章about/?sortid.html
文章列表newslist/?sortid_page.html
文章详情news/?sortid_id.html
产品列表productlist/?sortid_page.html
产品详情product/?sortid_id.html
图片列表piclist/?sortid_page.html
图片详情pic/?sortid_id.html
下载列表downlist/?sortid_page.html
下载详情down/?sortid_id.html
留言板gbook/

其中 sortid 是栏目 ID,id 是内容 ID,page 是当前页码。

静态资源路径前缀

引用 CSS、JS、图片等静态资源时必须用模板路径前缀,否则部署到子目录后 404:

<link href="/{aspcms:sitepath}Templates/{aspcms:defaulttemplate}/css/style.css" rel="stylesheet">
<script src="/{aspcms:sitepath}Templates/{aspcms:defaulttemplate}/js/main.js"></script>

站内链接路径前缀

所有站内 a 链接的 href 加 /{aspcms:sitepath} 前缀:

<a href="/{aspcms:sitepath}productlist/?4_1.html">查看更多产品>></a>

SEO 友好 URL 改造

ASPCMS 默认的 URL 带 ? 参数对 SEO 不友好。可以在 IIS 的 web.config 里配置 URL Rewrite 把 news/?1_5.html 重写为 /news/1/5.html

<rewrite>
  <rules>
    <rule name="aspcms-news-detail">
      <match url="^news/(\d+)/(\d+)\.html$"/>
      <action type="Rewrite" url="news/?{R:1}_{R:2}.html"/>
    </rule>
  </rules>
</rewrite>

同时模板里的 [newslist:link] 输出的 URL 也要改写——这需要修改 ASPCMS 的链接生成逻辑(Plus/Class/Cls_BLL.asp 之类的核心文件)。难度较高,但可显著提升 SEO 表现。

模板片段调用与辅助模板

头部 / 底部片段

<!-- 在 index.html 顶部 -->
{aspcms:top}     <!-- 调用 head.html -->

<!-- 在 index.html 底部 -->
{aspcms:foot}    <!-- 调用 foot.html -->

侧边栏等任意片段

除了 head/foot,还有任意命名的辅助模板。在主模板里通过 {aspcms:template src=xxx.html} 调用:

<aside>
  {aspcms:template src=side.html}
</aside>
<aside>
  {aspcms:template src=hot-products.html}
</aside>

这种写法等于"模板 include",把一个共用片段复用到多个页面。

友情链接 linklist

图片型友情链接

<ul class="links-images">
  {aspcms:linklist type=pic}
    <li>
      <a href="[linklist:link]" target="_blank" rel="nofollow">
        <img src="[linklist:pic]" alt="[linklist:name]" width="80" height="33">
      </a>
    </li>
  {/aspcms:linklist}
</ul>

文字型友情链接

<ul class="links-text">
  {aspcms:linklist type=font}
    <li><a href="[linklist:link]" target="_blank" rel="nofollow">[linklist:name]</a></li>
  {/aspcms:linklist}
</ul>

全部友情链接

{aspcms:linklist type=all}
  <a href="[linklist:link]" target="_blank" rel="nofollow">[linklist:name]</a>
{/aspcms:linklist}

SEO 提示:友情链接默认不带 nofollow,权重会传递给对方。如果是临时合作或不信任对方站点,记得手动给链接加 rel="nofollow" 或在后台批量设置。

条件判断与逻辑控制

if 标签基础

{if:[navlist:sortid]={aspcms:sortid}}
  class="active"
{end if}

条件支持的运算符:=(等于)、<>(不等)、><>=<=

if-else 嵌套

ASPCMS 的 if 没有原生 else 分支。常见做法是连续两个 if:

{if:[navlist:type]=2}
  <span class="icon-news"></span>
{end if}
{if:[navlist:type]=3}
  <span class="icon-product"></span>
{end if}

更复杂的逻辑(多分支、嵌套循环条件)一般要在后端核心文件改 ASP 代码,模板层面表达力有限。

实战:从零搭一个 ASPCMS 模板的目录结构

给一个完整最小模板的文件清单:

/Templates/mytheme/
├── head.html              # 共用头部 + nav
├── foot.html              # 共用底部 + 版权 + 统计代码
├── side.html              # 侧边栏(联系信息 + 推荐产品)
├── index.html             # 首页(包 head/foot/side + 首页内容)
├── about.html             # 单篇模板(关于我们 / 联系我们等)
├── newslist.html          # 新闻列表
├── news.html              # 新闻详情
├── productlist.html       # 产品列表
├── product.html           # 产品详情
├── piclist.html
├── pic.html
├── downlist.html
├── down.html
├── gbook.html             # 留言板
├── search.html            # 搜索结果
├── 404.html               # 404 页面
└── /css/style.css
└── /js/main.js
└── /images/logo.png

开发顺序建议:

  1. 先写 head.html 和 foot.html,确认全局变量都能正确输出。
  2. 写 index.html,重点是各种 list 标签跨分类调用。
  3. 写 newslist.html / productlist.html / piclist.html,确保分页器正常工作。
  4. 写 news.html / product.html,详情字段的访问与前后篇导航。
  5. 写 gbook.html、search.html、404.html。
  6. 测试所有页面在 IE9+ / Edge / Chrome / Firefox / 移动端浏览器的表现。

常见踩坑与维护建议

编码问题:模板文件必须 GBK 还是 UTF-8

ASPCMS 早期版本默认 GBK 编码(中文 Windows 服务器友好),新版本支持 UTF-8。模板文件的编码必须和 ASPCMS 后台设置一致——不一致就会乱码。Windows 记事本默认保存 ANSI(GBK),用 VS Code、Notepad++ 时务必显式选 UTF-8 不带 BOM。

IIS 必须启用 ASP 经典模式

ASPCMS 是 ASP 不是 ASP.NET。Windows Server 2019 / 2022 默认不装 ASP 模块,需要在"服务器管理器 → 添加角色 → Web 服务器 (IIS) → 应用程序开发"里勾选 ASP。否则访问 .asp 文件会 404 或下载源码。

权限问题:data 目录必须可写

ASPCMS 的数据文件、缓存、上传都在 /data/ 目录。给运行 IIS 进程的用户(IUSR / IIS_IUSRS)赋"修改"权限,否则后台发布文章和上传图片都失败。

SQL 注入历史漏洞

ASPCMS 早期版本(2.x)有多个已知 SQL 注入和文件上传漏洞(CVE 列表能查到)。生产环境必须升级到 3.x 最新版本,并加 WAF / nginx 反向代理过滤恶意请求。

移动端适配

ASPCMS 默认模板不响应式。要做手机版可以走两条路:(1) 模板里用 CSS3 媒体查询做响应式适配;(2) 后台启用"手机模板"功能,单独开发 mobile/ 目录的模板,通过 UA 判断切换。

静态化部署

ASPCMS 后台支持把动态页面生成静态 HTML("系统设置 → 静态页面生成")。生成后通过 IIS 直接出静态文件,性能高且 SEO 友好。但生成的 HTML 文件体积大、增量更新慢,适合内容更新频次低的企业站。

常见问题解答

ASPCMS 现在还有人维护吗

官方 ASPCMS 在 2015 年后基本停止主版本更新,最新公开版本是 ASPCMS 3.0。社区有零散的安全补丁但没有持续更新的 fork。如果是新项目,不建议选 ASPCMS——优先 WordPress / Typecho / DedeCMS / Joomla 这类还在维护的系统。如果是接手老项目,照本文方法读懂模板就能维护下去。

ASPCMS 的标签和 DedeCMS 标签能互相迁移吗

不能直接迁移,但思路高度相似。ASPCMS 的 {aspcms:newslist} 大致对应 DedeCMS 的 {dede:arclist},循环字段访问也类似(一个用 [newslist:title],另一个用 [field:title /])。迁移模板时主要是逐个标签找对应替换,工作量不小但不复杂。

怎么把 ASPCMS 模板改成响应式布局

核心是 CSS 改造,标签层面几乎不动。在 head.html 加 viewport meta、在 style.css 用 flex/grid 布局并用媒体查询适配多端。导航在小屏幕折叠成汉堡菜单(用一段 JS 控制 nav 显示隐藏即可)。改造完测试主要分辨率(320 / 375 / 414 / 768 / 1024 / 1440)下的显示效果。

列表页只显示了 10 条数据想要更多怎么改

调整 size 参数即可:{aspcms:newslist size=30 order=time} 改成 30。但要注意单页数据太多影响加载速度,建议 size 控制在 20-50 之间,配合分页器使用。如果是首页推荐位 num 参数:{aspcms:news num=10} 改成 10。

list 标签 order 参数除了 time/id/visits 还有哪些值

常用还有 isrecommend(按推荐排序)、top(按置顶排序)。具体支持哪些字段取决于内容表的字段——查看 /Plus/Class/ 下相关 ASP 文件里的 SQL 拼接逻辑可以确认。常见错误:写错排序字段名(比如把 visits 写成 view)会导致 SQL 出错或回退默认排序。

position 面包屑里"首页"是写死的还是有标签

"首页"两个字是写死在模板里的,因为 position 块只迭代分类祖先链路不包括根。如果是多语言站点要把"首页"也国际化,可以从语言包变量读:<a href="/{aspcms:sitepath}{aspcms:languagepath}">{aspcms:lang_home}</a>,前提是在 ASPCMS 后台多语言模块定义了 lang_home 变量。

模板里能写 ASP 原生代码吗

可以但不推荐。ASPCMS 的 .html 模板文件最终被 ASP 引擎处理,可以直接嵌入 <%...%> 段写 VBScript 或 JScript。但这样写出来的模板可读性差、容易和 ASPCMS 标签解析冲突、维护成本高。建议把所有动态逻辑都用 ASPCMS 标签实现,必须用 ASP 时也限制在很小范围。

ASPCMS 站点想做 SEO 优化主要从哪几个方向入手

四个方向:(1) URL 改造:从 ?sortid_id.html 改成 /category-name/article-id.html 这种伪静态形式;(2) 元信息:head.html 里 title、description、keywords 用文章本身字段而非全局站点字段(详情页用 [news:title] 等);(3) 结构化数据:在详情页输出 Article schema JSON-LD;(4) 站点速度:开启 IIS 静态压缩、合并 CSS/JS、图片转 WebP。

ASPCMS 后台访问慢怎么排查

三个方向:(1) /data/ 目录文件量过大(特别是 cache 和缓存日志),定期清理;(2) Access 数据库太大(/data/aspcms.mdb 超过 50MB 性能急降),考虑迁到 SQL Server;(3) IIS 应用池回收设置不合理,设置定时回收避免内存泄漏导致响应变慢。

升级 ASPCMS 大版本后模板不兼容怎么办

主版本升级(如 2.7 升 3.0)后部分标签语法或字段名会变。建议升级前 git diff 模板文件标签,升级后用一个测试站完整跑一遍 head/index/列表/详情/留言板五个核心场景,发现报错或 404 再定位具体哪个标签没换。可以参考 ASPCMS 官方升级日志(虽然简略但能找到关键变更点)。

总结

ASPCMS 的模板标签设计虽然朴素但很完整:站点全局信息、多级导航、四大列表、详情字段、分页器、面包屑、留言、链接、辅助模板、条件判断都覆盖到了。掌握了本文这份速查后,做一套企业站模板的开发周期通常在 3-7 天(看样式复杂度)。维护他人留下的 ASPCMS 模板时,遇到不熟的标签翻这份手册查表即可。但要清醒:ASPCMS 已停更多年,新项目尽量用现代 CMS;老项目可以维护但要做好安全加固(WAF + 备份 + 漏洞监控)。这份速查的核心价值不是教你"怎么做新 ASPCMS 站",而是让你能在接手老项目时迅速上手不踩坑。

分享到
标签
版权声明

本文标题:《ASPCMS 模板标签大全与调用说明:站点变量、导航、列表、详情、分页、留言、URL、IIS 部署完整速查》

本文链接:https://zhangwenbao.com/aspcms-labels-calling-instructions.html

版权声明:本文原创,转载请注明出处和链接。许可协议: CC BY-NC-SA 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交