一、京淘项目前台搭建
1、京淘项目架构图
2、京淘前台项目构建
2.1、创建项目
2.2、添加继承/依赖/插件
说明:编辑jt-web的pom.xml配置文件 其中打包方式注意改为war 其次 添加继承/依赖/插件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>jt-web</artifactId>
<packaging>war</packaging>
<parent>
<artifactId>jt</artifactId>
<groupId>com.jt</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<!--2.添加依赖信息-->
<dependencies>
<!--依赖实质依赖的是jar包文件-->
<dependency>
<groupId>com.jt</groupId>
<artifactId>jt-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<!--3.添加插件-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
将课前资料中的文件导入.如图所示.
2.3、关于web项目数据源报错的说明
SpringBoot程序启动时需要加载数据库但是没有数据源的配置信息.导致报错.
解决方案:添加排除数据源启动.
2.4、修改SpringBoot启动项
2.5、启动效果测试
2.6、编辑Nginx配置文件
说明: 要求用户通过http://www.jt.com 访问localhost:8092服务器.
修改nginx服务器之后重启即可.
#配置jt-web服务器
server {
listen 80;
server_name www.jt.com;
location / {
proxy_pass http://127.0.0.1:8092;
}
}
2.7、编辑hosts文件
3、关于谷歌浏览器https禁用问题
谷歌浏览器键入: chrome://net-internals/#hsts
修改完成之后,重启浏览器即可.
二、关于伪静态的说明
1、业务说明
问题1: 京东的商品有很多,如果都采用静态页面的形式为用户展现数据,如果有100万的商品,那么就需要100万个商品的xxx.html页面. 问:京东是这么做的吗???
实现规则:
应该动态获取商品的ID号.之后查询数据库,然后调整指定的页面,将数据进行填充即可.
问题2: 为什么京东采用.html结尾的请求展现商品呢?
答案: 采用.html结尾的页面,更加容易被搜索引擎收录,提高网站的曝光率.
2、搜索引擎工作原理
工作原理核心: 倒排索引机制. 根据关键字检索文章的位置.
3、伪静态思想
伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。伪静态技术是指展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的。
总结: 以.html结尾的动态页面.增强搜索引擎的友好性.
4、伪静态实现
说明:如果需要实现伪静态,则需要拦截.html结尾的请求即可. 否则程序认为你访问的是具体的静态资源如图所示
5、配置类介绍
@Configuration //web.xml配置文件
public class MvcConfigurer implements WebMvcConfigurer{
//开启匹配后缀型配置
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
//开启后缀类型的匹配. xxxx.html
configurer.setUseSuffixPatternMatch(true);
}
}