零度网络近期对一个做过跳转适配的dedecms/gbk手机站进行整站mip改造,经过一系列思路完善和测试,现分享一些遇到的细节问题:
1、非utf-8站点的编码问题
前些时候宋同学在站长社区发布了新装utf-8版cms和转换数据库编码的教程,我们刚开始也是类似思路,但因为站点经过二次开发以及包含一些乱七八糟的附加文件等,重装cms很难复原之前的修改,此思路卒。后又尝试在数据库调用时以gbk编码读取,测试生成后虽大体上浏览正常,但还是存在些许后续问题和少部分乱码,也放弃了该方案。终,灵光一闪——为什么要在程序执行过程中纠结?完全可以在生成静态页面时进行替换整改啊!顿时柳暗花明之感油然而生,测试果然可行,之后遇到后续问题(如下面问题2、3)也因此思路而变得易解决了。
2、路径问题
<a>、<img>/<mip-img>等标签中的相对路径需均转换为完整url,这个在目前教程里貌似没有明确提出,根目录相对路径还好,主要是相对当前页面路径转换完整url需加上所在目录有些难度(特别是标签调用生成的相对路径,如分页)。
3、内联样式问题
模板里的内联样式可以手动整改,虽烦琐但难度不大,主要问题在于后台发布文章时,cms编辑器会自动生成包括内联样式在内的各种不符合mip规则的原始代码,除了折腾一下对编辑器进行修改,其他也很难解决了。
4、js问题
mip规范局限了js的使用,这个的确挺头疼的,好在我们改造的站点内js不多,所以删掉部分效果和使用现有组件替换,也凑合解决了此问题。不过还是希望百度mip团队能在考虑下此方面的规范方案优化,不少站点有很多js代码且不能去除,全部以组件形式提交也很费事且需要一定的程序基础,其他问题还可以按统一教程去解决,但js上的mip改造却无法如此,按照目前的限制会导致很多站长因此一点就不得不放弃mip改造。
5、其他小问题
·发现少部分样式有冲突,需根据实际情况对本身css进行局部修改。
·发现mipcache无法识别站点中图片的302跳转,如原站使用302跳转的图片,mip生效后无法显示图片。该问题已和百度技术人员沟通,说后续可以考虑支持,目前我自己加了一段代码对路径做了下处理。
·组件使用bug(如mip-carousel多图轮播图片套<a>链接会导致图片显示空白,且无法自适应屏幕)。
·mip引入提交后就回显个success,也没有提交记录和状态,用户体验上有所欠缺。