Golang Web开发时前端出现谜之空白换行的坑
在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分。
分析:
查看出现问题页面的网页源代码,复制空白换行部分转码为Unicode编码,发现其中包含了\u2028这样的字符【图一】。
【图一】
另外,直接在浏览器检查里边的html选择Edit as html,也可发现在空白处存在小红点,鼠标移上会直接显示该字符是\u2028【图二】。查阅资料发现,这样的换行符在JavaScript中并不支持。
【图二】
解决方法:
在网页检查可以发现,直接删除这些小红点便可解决问题。网上有直接前端处理的方式,即搜索页面中的\u2028并将其替换为\\u2028即可,当然也可以在后台使用Golang进行处理,即在输出html前对内容进行检索,并替换即可。
strings.Replace(html,"\u2028","",-1)