首页 > 编程知识 正文

cms指的是中国什么单位,CMS全称

时间:2023-05-03 21:54:08 阅读:57503 作者:2814

一,

使用nginx等web服务的SSI技术,将多个子页面合并后进行渲染输出。

按如下方式分割主页。

index.html :首页主体内容

include/header.html :头部区域

include/index_banner.html :轮播

include/index_category.html :左侧列表导航

include/footer.html :页脚

二、

什么是单页面APP应用程序? 引用百度百科:

单页面APP应用程序的优缺点:

优点: 1、用户体验好,用户不需要刷新页面,整个交互过程都在Ajax上操作。 2、适合前后端分离开发,服务端提供http接口,前端要求http接口获取数据,使用JS进行客户端呈现。

缺点: 1、首页加载慢的单页APP应用将js、css打包成一个文件,页面加载查看时加载包文件。 软件包文件大或网速慢时,用户体验不好。 2、SEO不友好的搜索引擎优化(SEO )被优化为搜索引擎。 利用搜索引擎的搜索规则,提高网站在搜索引擎中的排名的方法。 由于每个搜索引擎目前都不支持JS,因此使用单页面APP应用程序将大大减少搜索引擎在网站上的收录。

总结:该项目的门户、课程介绍不采用单页面APP应用体系结构进行开发,需要用户注册的管理系统采用单页面APP应用进行开发。

三.页面管理

(1) CMS采用MongoDB数据库存储CMS页面信息。 CMS采用MongoDB的理由如下。 1、MongoDB是非关系数据库,存储Json格式的数据,数据格式灵活。 2、不比课程管理等核心数据CMS数据重要,且无办公管理要求。

(2) Spring-Data-MongoDB

(3) ) )。

分页查询和自定义条件查询MongoDB中的CmsPage集合;

@ get mapping (/list/{ page }/{ size } ) publicqueryresponseresultfindlist (path variable ) ) page ' ) int page,@ path

修改页面(前端通过表单传递给新的CMS页面);

删除页面(前端页面Id )。

四.页面静态化页面预览

1、为什么要进行页面管理?

本项目cms系统的功能是根据运营需要,管理门户等子系统的部分页面,实现根据用户需求快速修改页面内容并上线的需求。

2、如何修改页面内容? 在开发过程中修改页面内容需要人工创建html和JS文件,CMS系统通过程序自动修改页面内容,并通过页面静态技术生成html页面。

3、如何将页面静态化? 一个页面与向模板中添加数据相同,在添加页面时选择了页面模板。 页面静态是指用技术手段将页面模板和数据合并为一个,生成一个htmlweb页面文件。

4、页面静态化和页面发布的流程图如下。

业务流程如下。 1、获取模型数据; 2、模板制作(Freemarker ); 3、将页面静态化4、将静态生成的html页面存储在文件系统中5、将文件系统中保管的html文件向服务器公开。

页面的静态化流程如下图所示。 1、静态程序首先读取页面获取DataUrl。 (这是在向前端添加页面时手动输入的。 ) 2、静态程序远程请求数据URL数据模型(RestTemplate,基础OkHttpClient ); 3、获取页面模板4、执行页面静态化。

数据模型存储在MongoDB的cms_config集合中。

cms_config具有以下固定数据结构:

@ data @ tostring @ document (collection=' CMS _ config ' ) publicclassCMSconfig ) @idprivatestringid; //主键专用字符串名称; //数据模型的名称私有列表cmsconfigmodel模型; //数据模型项目} @ data @ tostringpublicclasscmsconfigmodel { privatestring key; //主键专用字符串名称; //项目名称专用字符串URL; //项目URL私有贴图贴图值; //项目的复杂值私有字符串值; //项目的简单值()1)模板管理

1、要添加新模板,必须先创建模板。 模板的内容是Freemarker ftl模板的内容。

2 .通过模板管理模块功能添加模板、修改模板、删除模板。

3 .模板信息保存在MongoDB数据库中,其中的模板信息保存在cms_template集合中,模板文件保存在GridFS文件系统中。

cms_template集合:

以下是一个例子:

{

“_ id”:对象id (“5a 962 b52 b 00 ff”)

c514038faf7”),
“_class” : “com.xuecheng.framework.domain.cms.CmsTemplate”,
“siteId” : “5a751fab6abb5044e0d19ea1”,
“templateName” : “首页”,
“templateParameter” : “”,
“templateFileId” : “5a962b52b00ffc514038faf5”
}
上边模板信息中templateFileId是模板文件的Id,此Id对应GridFS文件系统中文件Id。(文件存储成功会返回一个文件id供使用)

(2)页面预览

1、用户进入cms前端,点击“页面预览”在浏览器请求cms页面预览链接。
2、cms根据页面id查询DataUrl并远程请求DataUrl获取数据模型。
3、cms根据页面id查询页面模板内容 。
4、cms执行页面静态化。
5、cms将静态化内容响应给浏览器。
6、在浏览器展示页面内容,实现页面预览的功能。
一个简单的模板示例:

<#if model??><#list model as item><div class="item" style="background‐image: url(${item.value});"></div></#list> </#if>

(3)页面发布

业务流程如下:
1、管理员进入管理界面点击“页面发布”,前端请求cms页面发布接口。
2、cms页面发布接口执行页面静态化,并将静态化页面(html文件)存储至GridFS中。
3、静态化成功后,向消息队列发送页面发布的消息。 页面发布的最终目标是将页面发布到服务器。 通过消息队列将页面发布的消息发送给各各服务器。
4、消息队列负责将消息发送给各服务器上部署的Cms Client(Cms客户端)。 在服务器上部署Cms Client(Cms客户端),客户端接收消息队列的通知。
5、每个接收到页面发布消息的Cms Client从GridFS获取Html页面文件,并将Html文件存储在本地服务器。 CmsClient根据页面发布消息的内容请求GridFS获取页面文件,存储在本地服务器。

技术方案说明:
1、平台包括多个站点,页面归属不同的站点。
2、发布一个页面应将该页面发布到所属站点的服务器上。
3、每个站点服务部署cms client程序,并与交换机绑定,绑定时指定站点Id为routingKey。 指定站点id为routingKey就可以实现cms client只能接收到所属站点的页面发布消息。
4、页面发布程序向MQ发布消息时指定页面所属站点Id为routingKey,将该页面发布到它所在服务器上的cms client。

页面发布消费方
功能分析: 创建Cms Client工程作为页面发布消费方,将Cms Client部署在多个服务器上,它负责接收到页面发布 的消息后从 GridFS中下载文件在本地保存。
需求如下:
1、将cms Client部署在服务器,配置队列名称和站点ID;
2、cms Client连接RabbitMQ并监听各自的“页面发布队列” ;
3、cms Client接收页面发布队列的消息 ;
4、根据消息中的页面id从mongodb数据库下载页面到本地。
页面物理路径=站点物理路径+页面物理路径+页面名称。
从GridFS查询静态文件内容,将静态文件内容保存到页面物理路径下。
Cms Client工程的application.yml内容如下:

server: port: 31000 spring: application: name: xc‐service‐manage‐cms‐client data: mongodb: uri: mongodb://root:123@localhost:27017 database: xc_cms rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest virtualHost: / xuecheng: mq: #cms客户端监控的队列名称(不同的客户端监控的队列不能重复) queue: queue_cms_postpage_01 routingKey: 5a751fab6abb5044e0d19ea1 #此routingKey为门户站点ID

说明:在配置文件中配置队列的名称,每个 cms client在部署时注意队列名称不要重复。
定义消息格式:消息内容采用json格式存储数据,如下:
页面id:发布页面的id

{ "pageId":"" }

页面发布生产方
1、管理员进入管理界面点击“页面发布”,前端请求cms页面发布接口。
2、cms页面发布接口执行页面静态化,并将静态化页面存储至GridFS中。
3、静态化成功后,向消息队列发送页面发布的消息。
1) 获取页面的信息及页面所属站点ID。
2) 设置消息内容为页面ID。(采用json格式,方便日后扩展)
3) 发送消息给ex_cms_postpage交换机,并将站点ID作为routingKey。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。