您好,登錄后才能下訂單哦!
Cabloy-CMS是基于CabloyJS全棧業務開發框架開發的“動靜結合”的CMS,可以快速構建企業網站、博客、社區、商城等Web應用。
https://zhennann.me
Cabloy-CMS受Hexo啟發,采用“靜態+動態”的架構,彌補了Hexo許多功能上的不足,主要特性如下:
Cabloy-CMS基于CabloyJS全棧業務開發框架,提供了強大的文章后臺管理系統。CMS當中經常變動的功能均通過“動態部分”實現,并提供API供“靜態部分”調用。
Cabloy-CMS將“首頁”和“文章”等靜態元素實時渲染成靜態文件,既滿足了SEO的需求,同時也提升了訪問性能。
此外,“靜態部分”通過Ajax訪問“動態部分”提供的API,可實現豐富的頁面功能。
$ npm install -g egg-born
$ egg-born cabloy-cms --type=cabloy
$ cd cabloy-cms
$ npm i
$ npm i egg-born-module-a-cms
$ npm i egg-born-module-cms-themeblog
src/backend/config/config.unittest.js
// mysql
config.mysql = {
clients: {
// donnot change the name
__ebdb: {
host: '127.0.0.1',
port: '3306',
user: 'root',
password: '',
database: 'sys', // donnot change the name
},
},
};
src/backend/config/config.local.js
// mysql
config.mysql = {
clients: {
// donnot change the name
__ebdb: {
host: '127.0.0.1',
port: '3306',
user: 'root',
password: '',
database: 'sys', // recommended
},
},
};
src/backend/config/config.prod.js
// mysql
config.mysql = {
clients: {
// donnot change the name
__ebdb: {
host: '127.0.0.1',
port: '3306',
user: 'root',
password: '',
database: '{{name}}',
},
},
};
啟動后端服務
$ npm run dev:backend
啟動前端服務
$ npm run dev:front
語言配置
> 站點配置
> 缺省配置
進入設置/cms
頁面
cdn.xitu.io/2018/10/14/1666e7b41146e7cc?w=852&h=566&f=png&s=32379">
點擊站點/配置
,進入站點配置
頁面
點擊右側的“ !”按鈕,查看缺省配置
從缺省配置
拷貝需要修改的屬性到站點配置
頁面,并修改成所需要的值。
在這里,我們修改如下參數:
{
"host": {
"url": "http://example.com",
"rootPath": ""
},
"language": {
"default": "zh-cn",
"items": "zh-cn,en-us"
},
"themes": {
"zh-cn": "cms-themeblog",
"en-us": "cms-themeblog"
},
"plugins": {
"cms-plugintrack": {
"track": {
"google": "",
"baidu": "",
"qq": ""
}
}
}
}
可以依次對不同的語言配置參數,這里從略
為了提升渲染速度,在發表文章時,僅對“當前文章”和“首頁”進行渲染,其他靜態文件不變。所以,當設計到整站元素變更時,需要進行“整站渲染”。
進入設置/cms
頁面
可點擊“預覽”,直接查看渲染效果
此時生成的網址沒有內容,接下來可以創建目錄
,然后發表文章
Cabloy-CMS有以下約定:
有的CMS工具,文章可以分屬多個“目錄”,其實這種特性可以用“標簽”來解決
進入設置/cms
頁面,點擊語言的“目錄”按鈕,添加“目錄”,效果如下:
此時,可以進行“語言構建”,并預覽效果
Cabloy-CMS后臺提供了完備的文章管理功能。當文章提交發表時,實時渲染成靜態文件,并寫入Sitemap文件
在后臺首頁,點擊新建文章
,進入文章編輯頁面,依次輸入或選擇如下屬性值:
原子
是Cabloy對基礎業務數據的通用定義Cabloy-CMS采用開源組件mavonEditor,實現了markdown
格式的編輯和預覽效果
請輸入以下內容,并查看效果
![5775337-414d62d7c1e152f2](http://zhennann.cabloy.org/api/a/file/file/download/00ca2e89235b47bba5b7e7580fc71834.jpg)
## 一天到晚的魚兒不停游
曾經嘲諷
魚兒是被詛咒過的
一天到晚的不停游
here and there
here and there
如今
安然做一條魚兒
一天到晚的不停游
here and there
here and there
曾經的嘲諷
終會落在自己身上
here and there
here and there
甚好甚好
Cabloy中所有的原子數據均有兩個狀態:草稿
、正常
。草稿
狀態下只有創建人能訪問和編輯,通過提交
轉入正常
狀態,其他用戶才能訪問。
文章
也不例外,只有提交
進入正常
狀態,才會進行渲染。
當然,如果文章
已是正常
狀態,那么再次編輯并保存時,也會進行渲染。
首頁
文章頁
Cabloy支持多實例,實例與網站子域名一一對應,不同實例的數據完全隔離。比如instance1.cabloy.org
和instance2.cabloy.org
在調試
階段,Cabloy啟用了一個缺省實例,但在部署
階段,需要規劃實例與子域名
在CMS應用中,把域名example.com
留給靜態文件,需要給后臺管理系統分配一個子域名,如admin.example.com
由于一個實例對應一個CMS應用,通過多實例
就可以支持多站點
了
編輯文件:src/backend/config/config.prod.js
// instances
config.instances = [
{ subdomain: 'admin', password: '', title: '',
meta: {
jsonp: { whiteList: 'example.com' },
},
},
];
- subdomain: 子域名
- password: 實例中用戶
root
的訪問密碼- title: 網站標題
- meta.jsonp.whiteList: 白名單,只有白名單中的域名可以通過ajax訪問后臺API接口
$ npm run build:front
$ npm run start:backend
src/backend/config/config.prod.js
$ npm run stop:backend
編輯文件:build/config.js
// backend
const backend = {
port: 7002,
hostname: '127.0.0.1',
};
強烈建議使用nginx托管前端靜態資源,并反向代理后端服務
在項目根目錄已經生成了兩個nginx配置文件,分別對應Cabloy-CMS的“動態部分”和“靜態部分”,請根據實際情況修改
server {
listen 80;
server_name admin.example.com;
set $node_port 7002;
root /Users/wind/Documents/temp/cabloy-cms/dist;
location /public {
root /Users/wind/cabloy/cabloy-cms;
internal;
}
location /api/ {
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:$node_port$request_uri;
proxy_redirect off;
}
}
server {
listen 80;
server_name example.com;
root /Users/wind/cabloy/cabloy-cms/public/1/cms/dist;
}
有任何疑問,歡迎提交 issue!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。