如何创造静态页?
最重要的一步是,thymeleaf中的模板引擎。
所有注意事项,写在代码里了。
//静态页需要哪些数据,首先获取到,然后进行填充渲染
//此处,注意,loadData()方法是你自定义的,根据文件ID获取这个文件所需要的的数据,放入Map集合。
Map<String, Object> data = this.loadData(fileId);
//context联系上下文
Context context = new Context();
//存放动态数据
context.setVariables(data);
//明确静态页存储路径及命名规则
String filePath = "D:\\software\\nginx-1.14.0-windows\\nginx-1.14.0\\html\\word";
File dir = new File(filePath);
if(!dir.exists()){
dir.mkdir();
}
File file = new File(dir,fileId+".html");
try {
writer = new PrintWriter(file);
//thymeleaf存储引擎发动机执行任务,生成静态页面,存到指定目录。
templateEngine.process("word",context,writer);
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new FileException(ExceptionEnum.FILE_WRITER_ERROR);
} finally {
writer.close();
}
如何访问Nginx的静态页?
Nginx中的配置文件,参考:
https://blog.youkuaiyun.com/numbbe/article/details/109347783
在这个配置文件里
写一个判断逻辑
请求来临后
直接访问nginx服务器根目录下html文件夹中的静态页文件,这样就达成了访问静态页面的目的。
不再进行访问后台接口实时渲染页面,但是有静态页不存在的可能,所以进行判断。
如果静态页面不存在,则访问后台接口,渲染模板。
server {
listen 80;
server_name www.xiaolaoben.com;
location /word{
root html;
//访问静态页,此处注意,一般情况下你要访问的静态页存放路径为html文件夹下的word文件夹下的静态页
//举例:D:\software\nginx-1.14.0-windows\nginx-1.14.0\html\word\3.html
if (!-f $request_filename){
proxy_pass http://localhost:8089; //访问后台
break;
}
}
}
//这段判断逻辑是写死的,还有其他类似的。
/**
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
**/
···································································
你学废了吗