public override void Write(byte[] buffer, int offset, int count) { string imgWebPath = ConfigurationManager.AppSettings["ImgWebPath"].Trim(); //老图片地址 string iosImgWebPath = ConfigurationManager.AppSettings["IosImgWebPath"].Trim(); //新图片地址 if (HttpContext.Current != null) { HttpContext context = HttpContext.Current; Encoding encoding = context.Response.ContentEncoding; string Html = encoding.GetString(buffer, offset, count); Regex eof = new Regex(imgWebPath, RegexOptions.IgnoreCase); if (eof.IsMatch(Html)) { Match match = eof.Match(Html); byte[] bytes = encoding.GetBytes(Html); output.Write(bytes, 0, bytes.Length); } else { byte[] bytes = encoding.GetBytes(Html); output.Write(bytes, 0, bytes.Length); } } }
我重写了过滤器,当出现imgWebPath这种情况的话,把页面的进行修改成iosImgWebPath情况,但是为什么页面中的其他不符合条件的图片都不现实了。
imgWebPath 这个是满足img.xxx.com修改成iosImgWebPath iosimg.xxx.com。
上面的修改了,下面的应该不会修改才对啊。但是为什么图片地址没有修改,但是不现实了。
例如:src="/Content/blue/images/login_logo.png" 图片是这种地址的都不现实了。
我是碰到这种才替换的啊img.xxx.com,但是为什么不现实啊,请各位前辈指点。
s设置断点调试下不就知道问题出 哪了嘛。
你的正则表达式不严格, 从新写一个比较严格的正则表达式。
自己在外部修改完成