.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法

一、原因

为了更好的支持跨平台.NET 6框架放弃了原来的System.Drawing绘图的支持,转而使用第三方的SixLabors这个绘图库。

如果使用的wtm是.NET5及以下的请参照文章(14条消息) WTM(ASP.NET 5)部署到docker,并解决验证码无法显示问题_矿工学编程的博客-CSDN博客https://blog.csdn.net/sxy_student/article/details/113730689

 从GetVerifyCode的源码中我们看到

画验证码所用的字体是 Arial,从和刘总的聊天中还得知wtm6.0.4采用的字体是Times New Roman

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第1张图片

因此 部署的时候 就注意下下版本号,或者干脆两种载体都在centos7里安装上。 

二、解决过程

 1、fc-list查看系统已安装字体

 如果提示命令无效,不仅没有中文字体,连字体库都没有,那么接下来就记录一下在Linux CentOS 7中如何安装字体库以及中文字体。

2、安装字体库

yum -y install fontconfig

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第2张图片

 这时在/usr/shared目录就可以看到fonts和fontconfig这两个目录:

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第3张图片

 3、找到目标字体

很多系统都是从Windows系统开发的,那么咱们就在Windows系统的字体库拿到想要的字体。

打开C:\Windows\Fonts目录,找到目标字体(Arial和Times New Roman)复制到桌面

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第4张图片

 可以看到是一个堆文件

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第5张图片

 在在/usr/shared/fonts目录下新建一个目录chinese文件,并赋予可读可写权限

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第6张图片

 把目标文件上传至/usr/share/fonts/chinese/

4、安装ttmkfdir来搜索目录中所有的字体信息,并汇总生成fonts.scale文件

yum -y install ttmkfdir

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第7张图片

 然后执行ttmkfdir命令

ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

修改字体配置文件 添加

/usr/share/fonts/chinese到Font directory list

vi /etc/fonts/fonts.conf

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第8张图片

 然后输入:wq保存退出,并刷新内存中的字体缓存(如果没效果就reboot重启):

刷新操作

fc-cache

查看最近字体库

fc-list

.NET 6 WTM layui发布到centos7,验证码不显示问题解决办法_第9张图片

目标字体完成了安装。

这个时候刷新在浏览器中刷新登录页面,如果没有效果就只能重启centos系统了。 

你可能感兴趣的:(WTM随写,centos,asp.net,microsoft,wtm,.net,6)