系统模板结构
模板结构与目录说明
在阅读本文前,建议先阅读《系统模板语法》中“基础原理”章节,以便理解模板文件的工作机制以及后续模板开发相关内容。
核心文件
系统在 /shared 目录下提供了一套用于快速开发的前端基础框架。
目录结构如下:
/shared
├── css
└── js
其中:
| 目录 | 说明 |
|---|---|
| css | 系统核心样式文件 |
| js | 系统核心脚本文件 |
这些文件构成了系统默认前端框架的基础部分,一般情况下无需修改。
通过这些核心文件,可以快速搭建完整的网站页面,并获得统一的样式规范与交互体验。
如果需要完全定制属于自己的前端开发框架,通常可以从此目录开始进行二次开发。
模板位置
所有主题模板均存放于网站根目录的 theme 文件夹下。
目录结构示例:
/theme
├── skin5-native
├── skin-companya
└── skin-companyb
每个主题之间完全独立,可以拥有不同的页面结构、样式文件以及模板逻辑。
系统默认主题为:
skin5-native
主题配置文件
每个主题目录下都包含两个系统配置文件:
theme.config
Web.config
这两个文件属于系统核心文件,不可删除。
theme.config
用于定义主题基本信息。
例如:
<theme>
<name>默认主题</name>
</theme>
其中:
<name></name>
标签中的内容将显示在后台主题管理界面中。
例如:
<name>企业官网主题</name>
后台切换主题时将显示:
企业官网主题
Web.config
用于定义主题运行所需的默认配置。
该文件由系统自动读取,通常无需修改。
模板类型
系统后台分类管理中提供两种列表类型:
-
栏目列表
-
全局列表
不同类型决定页面读取内容的方式。
栏目列表
栏目列表仅读取当前分类下的直接内容。
例如:
产品中心
├── CNC加工
├── 钣金加工
└── 压铸加工
当访问:
产品中心
时,仅显示属于:
产品中心
分类下的内容。
全局列表
全局列表除了读取当前分类内容外,还会读取所有子分类内容。
例如:
产品中心
├── CNC加工
├── 钣金加工
└── 压铸加工
访问:
产品中心
时将显示:
-
产品中心
-
CNC加工
-
钣金加工
-
压铸加工
所有分类下的内容。
模板文件对应关系
后台模板选择框中显示的是模板名称。
实际对应的模板文件为:
模板名称.cshtml
例如后台选择:
product-list
实际调用文件:
product-list.cshtml
系统为了简化后台管理界面,默认隐藏:
.cshtml
扩展名。
特殊页面模板
部分页面拥有固定模板名称,系统会自动识别。
这些文件名称不可修改。
首页模板
首页固定文件名:
index.cshtml
例如:
/theme/skin5-native/index.cshtml
首页模板名称必须为:
index.cshtml
否则系统将无法正确识别首页。
搜索页面模板
根据内容模型不同,搜索页分为:
文章搜索
article-search.cshtml
产品搜索
product-search.cshtml
系统会根据当前搜索内容自动调用对应模板。
模板命名规范
模板文件名称可以使用任意合法字符。
例如:
about.cshtml
company.cshtml
service.cshtml
contact-us.cshtml
虽然系统不限制命名规则,但建议按照统一规范进行管理。
推荐格式:
内容模型-页面名称
例如:
article-company.cshtml
含义:
| 部分 | 说明 |
|---|---|
| article | 内容模型为文章 |
| company | 页面用途为公司介绍 |
通常用于:
关于我们
企业简介
公司介绍
等页面。
默认目录结构
以系统默认主题:
skin5-native
为例。
目录结构如下:
skin5-native
├── control
├── dist
├── images
├── module
├── index.cshtml
├── article-company.cshtml
├── product-list.cshtml
└── ...
Control 目录
用于存放公共模板文件。
/control
├── _header.cshtml
├── _footer.cshtml
└── _reference.cshtml
_header.cshtml
网站头部区域。
通常包含:
-
Logo
-
导航菜单
-
搜索框
-
语言切换
_footer.cshtml
网站底部区域。
通常包含:
-
联系方式
-
版权信息
-
底部导航
-
社交媒体链接
_reference.cshtml
公共资源引用文件。
通常用于统一引用:
CSS
JavaScript
Meta标签
第三方插件
页面引用示例:
@Html.Partial("control/_reference")
Dist 目录
用于存放主题资源文件。
/dist
├── css
├── js
└── fonts
css
网站样式文件。
例如:
style.css
theme.css
responsive.css
js
网站脚本文件。
例如:
main.js
product.js
article.js
fonts
字体文件目录。
例如:
woff
woff2
ttf
Images 目录
用于存放主题公共图片资源。
/images
通常包括:
-
Logo
-
国旗图标
-
默认图片
-
系统图标
-
SVG图标
例如:
logo.svg
default-product.jpg
en.png
jp.png
这类资源通常不会频繁变动。
Module 目录
用于存放可复用模块模板。
/module
例如:
_product-item.cshtml
_article-item.cshtml
_banner.cshtml
_pagination.cshtml
调用方式:
@Html.Partial("module/_product-item", item)
模块化开发具有以下优势:
-
提高代码复用率
-
降低维护成本
-
减少重复代码
-
提升开发效率
推荐将重复出现的页面结构拆分到 Module 目录进行统一管理。
开发建议
推荐采用以下目录结构:
skin5-native
├── control
├── dist
├── images
├── module
├── index.cshtml
├── article-list.cshtml
├── article-detail.cshtml
├── product-list.cshtml
├── product-detail.cshtml
├── article-search.cshtml
└── product-search.cshtml
开发过程中建议:
-
Header、Footer 使用公共模板。
-
CSS、JS 统一放置于 Dist 目录。
-
公共图片放置于 Images 目录。
-
可复用模块放置于 Module 目录。
-
页面模板仅负责页面结构展示。
-
复杂逻辑尽量放入服务层处理。
通过规范的目录结构,可以显著提高模板的可维护性和团队协作效率。