搜索引擎并不是喜欢静态页的起源:网页静态化
优采云 发布时间: 2021-06-22 05:24搜索引擎并不是喜欢静态页的起源:网页静态化
为什么要做SEO?
当公司的项目接近尾声时,此时需要进行推广,此时就需要SEO。什么是搜索引擎优化? SEO中文翻译是搜索引擎优化。它利用搜索引擎的规则来提高网站在相关搜索引擎中的自然排名。目的是让它在行业中占据领先地位,获得品牌利益。很大程度上是网站管理者的一种商业行为,把自己或自己公司的排名往前拉。
常见误解:
就速度而言,一般情况下,静态网页比动态网页要快。但很多时候,我们为 SEO 将 网站 设为静态。这是必要的吗?我们知道网站 基本上不可能是纯静态的。除了一些网站如维基百科,我们的网站需要修改,需要用户参与互动。还有一个很大的堆导致我们的网站动态变化。因此,我们牺牲了用户友好的体验来“赢得搜索引擎的青睐”。但是您知道搜索引擎不喜欢静态页面吗。
搜索引擎不喜欢静态页面的来源:
将网页静态化纯属谎言。我们想谈谈这件事的由来。搜索引擎刚刚起步的时候,动态页面也刚刚出现。很多网页的地址后面都有很多参数,这些参数可能会动态变化。它将基于用户。不同的操作有不同的参数。搜索引擎不喜欢这样的地址。为什么?我们先来看看搜索引擎在做什么。搜索引擎实际上是一个程序,它的学名是Spider。发布后,它会下载并分析某个网站,然后将摘要部分放入自己的数据库中。下次用户搜索时,直接搜索到它的数据库。
搜索引擎的工作原理:
比如,如果谷歌要索引我的网站,它会先访问主域名,但实际定位到这个页面。这样蜘蛛首先下载的是index.php当前页面的html内容。注意蜘蛛只需要原生的html内容(当然也包括文本),不需要iframe中的任何内容,也不需要js等脚本生成的任何内容。多媒体内容包括图片、flash等,只索引html标签和标签中的内容。它把你的html当成一段文本,然后对其进行分析,得到文本内容和链接内容,然后根据这个链接进行下一个索引。搜索引擎实际上会分析文本并将其放入数据库中。注意数据库!有基础技术的人都知道,只要是数据库,就会有主键。根据范式理论,数据库应该有唯一的主键,搜索引擎索引回来的数据也应该有唯一的主键。这个主键是什么?是我们的网站。
好了,理论讲完了,开始吧
pom.xml 引入了与 freemark 相关的依赖:
org.freemarker
freemarker
2.3.23
SpringMvc 配置文件:
zh_CN
yyyy-MM-dd
yyyy-MM-dd
#.##
application.properties 配置文件:
#静态路径配置
resources.server=http://127.0.0.1:8081/tst_consumer_war_exploded/
一般来说,我们只需要将后端数据响应到前端模板页面即可。
关于静态资源路径问题:在SpringMvc的配置中添加:
模板页面一般以.ftl结尾,页面内容类似:
至于生成静态模板页面,这里是一个收录引用模板的链接:
提供一种生成静态html文件的方法:
/**
* 生成静态页面
* @param data 模板数据 创建一个穆数据集,可以是pojo也可以是map,推荐使用map
* @param ftlPath 模板路径 例如:E:\\Project\\CompanyProject\\standard\\tst-consumer\\src\\main\\resources\\freemarker\\aboutUs
* @param ftlName 模板名称 例如:index.ftl
* @param htmlPath 生成的静态文件路径 例如:E:\\Project\\CompanyProject\\standard\\tst-consumer\\src\\main\\resources\\freemarker\\staticHtml
* @param htmlName 生成的静态名称 例如:aboutBaijian.html
* @throws Exception
*/
public static void toHtml(Map data,String ftlPath,String ftlName,String htmlPath,String htmlName) throws Exception{
// 创建一个Configuration对象
Configuration configuration = new Configuration(Configuration.getVersion());
// 设置模板文件保存的目录
configuration.setDirectoryForTemplateLoading(new File(ftlPath));
// 设置文件的编码格式,一般是utf-8
configuration.setDefaultEncoding("utf-8");
configuration.setClassicCompatible(true);
// 加载一个模板文件,创建一个模板对象
Template template = configuration.getTemplate(ftlName);
// 创建一个Writer对象,指定输出文件的路径以及文件名
Writer out = new FileWriter(new File(htmlPath + "\\" + htmlName));
// 生成静态页面
template.process(data, out);
// 关闭流
out.close();
}
注意:如果模板文件中收录另一个模板,则两个模板必须在同一目录下,如:
我在 aboutUs 目录中的 index.ftl 中使用了 include 来收录注释目录中的文件。生成的时候会报错,因为只提供了一个模板目录,而你引用了两个目录,找不到模板。在会议上报告错误。
freemark最常见的用法,提供这个链接: