一个静态网页模板,一个门户级的网站就出来了

优采云 发布时间: 2021-08-16 04:10

  一个静态网页模板,一个门户级的网站就出来了

  cms(Content Management System)是内容管理系统,主要用于管理本项目中的静态页面。可以理解为cms帮你完成了网站的程序部分,你要做的就是网站里面的美术部分,几个静态网页模板,一个门户级的网站是出来!

  cms,大约在2004年之前,如果要管理网站内容,基本靠人工维护,但是面对千变万化的信息流,如果没有好的程序支持,可以继续手动完成。可能,如果你有一个好的系统来支持你的网站,会节省大量的人力物力。开发者可能会给客户一个软件包,可以用来定期手动修改网站。只要您配置安装好,您的编辑、在线记者或更新者只需定期更新数据,剩下的交给cms。

  1、如何管理页面内容?

  将页面一一拆分成小页面,通过cms管理这些小页面。当您要更改部分页面内容时,只需更改特定的小页面即可。

  2、 如何在页面打开时浏览网页服务?

  利用web服务(如nginx)的SSI技术,将多个子页面合并渲染。

  这些页面的管理流程是怎样的?

  1)创建站点:

  一个网站有很多子站点,比如学城在线有主门户、学习中心、问答系统等子站点,具体哪个页面属于一个具体站点,所以要管理一个页面,首先要管理该页面所属的站点。

  2)创建模板:

  如何创建页面?比如电商网站的商品详情页面,每个页面的内容布局和格式都是一样的,唯一不同的就是内容。这个页面的布局和格式就是页面模板,模板+数据构成一个完整的页面。创建页面文件,需要先定义页面模板,最后获取页面数据,结合模板组合成一个完整的页面。

  3)创建页面:

  创建页面是指填写页面的基本信息,如:页面名称、页面url地址等

  4)页面预览:

  页面预览是页面发布前的工作。页面预览采用静态技术,根据页面模板和数据生成页面内容,通过浏览器预览页面。页面发布前进行页面预览的目的是为了保证页面发布后的正确性。

  5)page 发布:

  利用计算机技术将页面发送到页面所在站点的服务器,页面发布成功后可以通过浏览器访问。

  这个项目将实现什么样的功能?

  1)页面管理

  管理员在后台添加、修改、删除页面信息。

  2)页面预览

  管理员使用页面预览功能来预览页面发布后的效果。

  3)page 发布

  管理员通过页面发布功能将页面发布到远程门户服务器。页面发布成功后,用户可以在浏览器中浏览到新发布的页面。整个页面添加和发布过程由软件自动执行,无需手动登录服务器。

  项目中使用了Nginx。 Nginx在cms功能中的作用是充当静态资源服务器。

  如下配置Nginx:

  server {

listen 80;

server_name www.xuecheng.com;

ssi on;

ssi_silent_errors on;

location / {

alias D:/Java_Project/mainProject_Interface/Interface_web/xc-ui-pc-static-portal/;

index index.html;

}

}

  C:\Windows\System32\drivers\etc下的hosts文件配置如下:

  127.0.0.1 www.xuecheng.com

  cms函数使用的数据存储在MongoDB中:

  

  架构到位后,即可实现业务。 cms函数对应xc-service-manage-cms服务:

  

  服务的pom.xml文件如下:

  

xc-framework-parent

com.xuecheng

1.0-SNAPSHOT

../xc-framework-parent/pom.xml

4.0.0

xc-service-manage-cms

com.xuecheng

xc-service-api

1.0-SNAPSHOT

com.xuecheng

xc-framework-model

1.0-SNAPSHOT

com.xuecheng

xc-framework-utils

1.0-SNAPSHOT

com.xuecheng

xc-framework-common

1.0-SNAPSHOT

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-freemarker

org.springframework.boot

spring-boot-starter-data-mongodb

org.springframework.boot

spring-boot-starter-amqp

com.squareup.okhttp3

okhttp

org.springframework.boot

spring-boot-starter-test

  接下来开始写各种配置(这是标准的开始)。

  首先是application.yml:

  server:

port: 31001

spring:

application:

name: xc-service-manage-cms

data:

mongodb:

uri: mongodb://root:123@localhost:27017

database: xc_cms

freemarker:

cache: false #关闭模板缓存,方便测试

settings:

template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试

rabbitmq:

host: 127.0.0.1

port: 5672

username: guest

password: guest

virtualHost: /

  如何配置IP地址? rabbitmq下的virtualHost是什么?

  再看启动类ManagecmsApplication:

  @SpringBootApplication

@EntityScan("com.xuecheng.framework.domain.cms")//扫描实体类

@ComponentScan(basePackages = {"com.xuecheng.api"})//扫描接口

@ComponentScan(basePackages = {"com.xuecheng.manage_cms"})//扫描本项目下的所有类

@ComponentScan(basePackages ={"com.xuecheng.framework"} )//扫描common包下的类

public class ManageCmsApplication {

public static void main(String[] args) {

SpringApplication.run(ManageCmsApplication.class,args);

}

@Bean

public RestTemplate restTemplate(){

return new RestTemplate(new OkHttp3ClientHttpRequestFactory());

}

}

  这里有一个问题需要思考:如果微服务部署在不同的服务器上,这个服务如何扫描其他微服务的包? (可能是因为引入了其他服务依赖...)@ComponentScan扫描包的作用是什么(启动时会扫描bean并注入spring容器)?在启动类的容器中也放置了一个RestTemplate。

  有两个配置类,MongoConfig和RabbitmqConfig,如下:

  @Configuration

public class MongoConfig {

@Value("${spring.data.mongodb.database}")

String db;

@Bean

public GridFSBucket getGridFSBucket(MongoClient mongoClient){

MongoDatabase database = mongoClient.getDatabase(db);

GridFSBucket bucket = GridFSBuckets.create(database);

return bucket;

}

}

  @Configuration

public class RabbitmqConfig {

//交换机的名称

public static final String EX_ROUTING_CMS_POSTPAGE="ex_routing_cms_postpage";

/**

* 交换机配置使用direct类型

* @return the exchange

*/

@Bean(EX_ROUTING_CMS_POSTPAGE)

public Exchange EXCHANGE_TOPICS_INFORM() {

return ExchangeBuilder.directExchange(EX_ROUTING_CMS_POSTPAGE).durable(true).build();

}

}

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线