重构Blog后部署到linux遇到的问题
利用业余时间,把Blog重构了,同时也部署到一个tencent cloud linux主机上。部署过程中,遇到2个问题,记录下。
1,验证码图片无法显示。 由于使用的是 SkiaSharp
库,来生成验证码图片。原来在windows 上的时候能正常生成,现在在linux上,提示依赖不存在,查看发布后的 runtime 文件夹,没有相关的 so 库,猜测可能有其它依赖没有安装。 查看 SkiaSharp github 主页 readme , 里面有个说明,SkiaSharp
Because there are multiple distros of Linux, and we cannot possibly support them all, we have a separate NuGet package that will contain the supported binaries for a few distros: SkiaSharp.NativeAssets.Linux. (distros) (more info)
安装SkiaSharp.NativeAssets.Linux
, 重新发布,验证码显示正常。 点击查看验证码
2,路径大小写问题。 最早的时候,blog 是使用 BlogEngine.NET 搭建的,后来,改成了自己搭的,为了兼容,图片能正常显示,图片上传目录是Uploads
, 后面改成了小写 uploads
,在windows server 上部署是没有问题的,因为windows 上是不区分大小写, 现在部署在linux 上, linux系统是区分大小写的,因此之前的文章,图片可能会无法显示。
解决方法是,使用nginx 重写路径。
location / {
# 改为小写
rewrite "^/Uploads/(.*)$" "/uploads/$1";
...
}
修改后,reload 配置,图片显示正常。
已禁用评论。