eggjs下非public文件下静态中文名图片打开问题

场景:上传zip包解压在app/resource文件目录下,解压后含index.html,index.html里面引入了中文名的图片

问题:服务器打开http://127.0.0.1:7001/resource/index.html时中文名图片加载失败,非中文图片加载没有问题

解决过程:

查看各种资料无果,但看到了egg-static的一段描述:

eggjs下非public文件下静态中文名图片打开问题_第1张图片

突然感觉到,  上传的zip包其实是静态文件,可能经过一堆的中间件导致了中文名图片无法展示,所以查看egg-static

默认的情况下,egg-static只配置了public文件夹,尝试把app/resource也加入到静态文件配置下,同时想前缀该为resource,但改成/resource/后本身public下面的静态文件无法打开,最终仍/public/作为前缀既可以打开public下的文件,又可以打开resource目录下的文件。

最终配置如下:

exports.static = {

    prefix: '/public/',

    dir: ['app/public', 'app/resource']

};

文件目录结构如下图:

1)public和resource平级

2)访问public中的文件直接使用http://127.0.0.1:7001;

3)访问resource文件的使用:http://127.0.0.1:7001/public/208/1554724248970/

4)同时把原来保存在mysql中的pathname信息修改下,用

update tablenam set resource_path = REPLACE(resource_path, '/resource/','/public/') where resource_path like '/resource%/'

eggjs下非public文件下静态中文名图片打开问题_第2张图片

eggjs下非public文件下静态中文名图片打开问题_第3张图片

截图参考链接:https://www.jianshu.com/p/6b04330ee4a1

你可能感兴趣的:(nodejs)