场景:上传zip包解压在app/resource文件目录下,解压后含index.html,index.html里面引入了中文名的图片
问题:服务器打开http://127.0.0.1:7001/resource/index.html时中文名图片加载失败,非中文图片加载没有问题
解决过程:
查看各种资料无果,但看到了egg-static的一段描述:
突然感觉到, 上传的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%/'