最近在做上传的图片的需求,思考上传之后的图片怎么访问的问题,因为后端是Node,一开始尝试写一个专门的接口通过传入图片的path来查找,试了一下感觉并不理想,因为要为每种类型的文件设置Content-Type,不然浏览器会直接下载改文件。

koa-static方案

后端框架因为使用的是koa,采用koa-static实现如下:

import staticServer from 'koa-static';

app.use(staticServer(__dirname, '/upload'));

假如upload目录中有logo.png文件,就可以通过URLhttp://cms.thinktxt.com/logo.png访问到。

Nginx方案

Nginx天生擅长托管静态资源,最终选用的方案是通过Nginx托管,这样还可以解放Node的服务压力,配置如下:

server {
    listen          80;
    server_name     cms.thinktxt.com;

    location / {
        proxy_pass  http://127.0.0.1:8080;
        client_max_body_size    1000m;
    }

    location /images {
        root e:/WorkSpace/Thinktxt-CMS/upload/;
    }
}

假如upload目录下的images目录中有logo.png文件,就可以通过URLhttp://cms.thinktxt.com/images/logo.png访问到。

如果别的别的系统想要访问该站点目录下的资源,也可以做转发:

server {
    listen          80;
    server_name     static.thinktxt.com;

    location /images {
        proxy_pass http://cms.thinktxt.com/images;
    }
}
相关标签
qrcode-pay