2 回答
TA贡献1853条经验 获得超9个赞
你不能用正则直接替换,而是应该将这些原路径先提取出来,然后算出其绝对路径,再去掉host,然后再和你的新路径合并。
比如 images/new1.jpg,你的程序在打开这个 a.htm 文件时是知道其在 Guid目录下的,那么你用 Uri 这个类就可以通过输入当前Uri 和 相对路径得到绝对路径是 http://oldhost/Guid/image/new1.jpg.
然后 再用 Uri 这个类获取其相对路径 Guid/image/new1.jpg 然后再和 新的host 如 localhost合并就可以了。
../news/images/img2.jpg 也是同理,绝对路径的出来是 http://oldhost/news/image/img2.jpg
再合并后就是 http://localhost/news/image/img2.jpg
TA贡献1790条经验 获得超9个赞
其实我觉得你可以考虑重构一下程序:如果有时间和必要的话
如果图片的src都是写死到文件中的,那么很可惜,你要一个个查找替换了,还好我们有正则表达式可以做这个,不过工作量估计依然不小,而且没有办法保证完全正确
如果可以重构,一个小技巧,所以静态资源,比如图片脚本样式之类,从一开始就设计为可分离,比如一个图片应该是这个样式滴:
<img src="<%=ResourcesURL%>/news/new1.jpg" alt="new1" />
这个ResourcesURL可以放到web.config里也可以放到数据库里,随便哪里都可以,是一个可配置的字符串,这样当你把图片分离出去的时候就容易了,尤其当你想把图片文件放到单独的二级域名下的时候(放到单独二级域名可以加速浏览器加载速度,可以平衡服务器IO等等,好处多多)
- 2 回答
- 0 关注
- 590 浏览
添加回答
举报