重构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 配置,图片显示正常。

已禁用评论。