目录
一、需求背景
继续博客SpringBoot下载freemarker转换的图片(高清不模糊)介绍项目部署的相关注意事项。
部署到服务器之后,在使用freemark模板生成Html转为img文件的时,中文会变成小方块。
部署环境:linux、docker
二、效果预览
错误示范
正确示范
三、docker部署
1.dockerfile
# 基础镜像
from sapmachine/jdk11:latest
# 作者
MAINTAINER asyf
#中文字体显示为方框,导入中文字体解决(路径根据容器的字体路径调整)
COPY simsun.ttf /usr/share/fonts/truetype/dejavu
#解决中文乱码的问题
ENV LANG C.UTF-8
# 把可执行jar包复制到基础镜像的根目录下
ADD demo.jar /demo.jar
# 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效
EXPOSE 8080
# 在镜像运行为容器后执行的命令,运行jar包
ENTRYPOINT ["java","-jar","/demo.jar","&"]
2.windows部署目录
注意:把字体文件、dockerfile文件、项目jar包放到相同目录
执行cmd命令:
构建镜像
docker build -t test:01 -f Dockerfile .
启动容器
docker run -i -t -d --name imgtest -p 8082:8080 test:01 /bin/bash
查看日志
docker logs imgtest -f
访问图片
http://localhost:8082/img/test
3.中文乱码解决
仅需要在dockerfile中添加一行代码即可
#中文字体显示为方框,导入中文字体解决(路径根据容器的字体路径调整)
COPY simsun.ttf /usr/share/fonts/truetype/dejavu
四、linux部署
linux部署时需要直接在服务器安装字体(亲测有效)
注意:需要重启SpringBoot项目
在linux中执行以下命令:
cd /usr/share/fonts (若fonts不存在则创建)
mkdir winFont (创建好目录后,将文件simsun.ttc拷到当前文件中)
mkfontdir (执行成功后会出现fonts.dir文件夹)
mkfontscale (执行成功后会出现fonts.scale文件夹)
最后如果执行成功了需要重新启动出现问题的系统服务。(重启springboot项目即可生效)
注意:如果字体未生效,强制更新字体缓存,执行命令:
fc-cache –fv
若在执行mkfontdir的过程中出现错误提示:mkfontdir: command not found
安装下面命令
yum install fontconfig
yum install mkfontscale
yum install fontscale
五、参考
https://blog.csdn.net/son_of_a__bitch/article/details/109390051