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

本文解决了在服务器上打开含中文名图片的index.html时,图片加载失败的问题。通过调整egg-static配置,将app/resource目录加入静态文件配置,并保持前缀为/public/,确保了中文名图片的正常显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:上传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%/'

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值