文件结构的特点
Cabloy-CMS采用精细的文件结构,带来了如下便利:
- 便于定制CSS、JS
- 便于定制图片等各类静态资源
- 便于实现多语言
- 便于调试与发布
建议先把服务运行起来,并整站构建
一次,就可以清晰的看到Cabloy-CMS的文件结构
根目录
在开发环境
中,为了便于调试,CMS文件根目录
位于源代码项目内部。而在生产环境
中,CMS文件根目录
缺省放置在当前用户的Home目录
中
名称 | 环境 | 值 |
---|---|---|
根目录 | 开发环境 | {ProjectDir}/src/backend/app/public/{InstanceId}/cms |
根目录 | 生产环境 | {HomeDir}/cabloy/{ProjectName}/public/{InstanceId}/cms |
InstanceId
: 实例Id,通过多实例可以实现多站点的搭建HomeDir
: 默认为当前用户的Home目录
可以在项目配置文件中修改模块a-base
的参数
src/backend/config/config.prod.js
config.modules = {
'a-base': {
publicDir: '/path/to/public',
},
};
publicDir
: 必须是绝对路径,相当于在生成环境中覆盖路径{HomeDir}/cabloy/{ProjectName}/public
,那么根目录最终可表达为:{publicDir}/{InstanceId}/cms
一级目录
名称 | 说明 |
---|---|
dist | 构建 的输出目录 |
en-us/zh-cn | 语言源码目录 |
输出目录
名称 | 说明 | 渲染时机 | 备注 |
---|---|---|---|
articles | 存储所有渲染的文章页面 | 两个渲染时机 | |
assets | 资源文件 | 整站构建 | |
plugins | 插件的资源文件 | 整站构建 | |
static | 静态文件 | 整站构建 | 如文件articles.html ,通过ajax调用后端API获取文章清单,从而可以集中实现目录 、标签 、搜索 等功能 |
zh-cn | 其他语言的文件输出目录 | 支持多语言时,缺省语言在根目录 下,其他语言在子目录 下 |
|
index.html | 首页 | 两个渲染时机 | 为了提升首页加载性能,首页可能会包含最近发布的文章。所以,当文章 单独渲染时,也会再次渲染首页 |
robots.txt | SEO相关 | 整站构建 | 不论是否有多语言,只有一个robots.txt 在根目录 下 |
sitemap.xml | SEO相关,当前语言的站点地图文件 | 整站构建,文章 单独渲染时修改内容 |
|
sitemapindex.xml | SEO相关,站点地图文件索引 | 整站构建 | 不论是否有多语言,只有一个sitemapindex.xml 在根目录 下 |
语言源码目录
名称 | 说明 | 备注 |
---|---|---|
intermediate | 中间文件目录 | 在整站构建 时,将主题 、插件 、自定义源码 的所有源码文件和资源统一写入intermediate 目录,然后再执行渲染逻辑 |
custom | 自定义源码目录 | 用户可以在custom 目录添加自定义源码文件,在整站构建 时,会自动覆盖intermediate 中相同路径的文件 |
custom/dist | 特别输出目录 | 在实际生产环境中,会有一些第三方用途的文件,如Google站点验证文件 ,可以放置在这个目录,以便整站构建 时输出 |
名称 | 说明 | 备注 |
---|---|---|
assets | 资源文件 | |
layout | 布局目录 | 可根据自己的需要规划和添加页面元素 |
main | 主渲染模版目录 | |
main/article.ejs | 文章渲染模版 | 当需要渲染文章 时使用此模版文件 |
main/index | 首页渲染模版目录 | 当需要渲染首页 时使用此目录中的模版文件。为什么是目录?在一个复杂的站点中,根据场景需要可以有多个类似首页 的模版文件 |
plugins | 插件目录 | 在整站构建 时,把所有插件 源码文件和资源写入plugins 目录 |
static | 静态文件目录 | 如文件articles.ejs ,通过ajax调用后端API获取文章清单,从而可以集中实现目录 、标签 、搜索 等功能 |
为什么需要把所有源码文件(
主题
、插件
、自定义源码
)都写入intermediate
目录?
- 集中归集到同一个目录,便于各文件之间的包含引用,也便于通过
custom
目录进行定制
评论: