• 个人官网第6次升级,艰难地完成了,有史以来最难的一次


    本次升级,非常难,遇到了各种问题,稍后再总结分享。

    主要解决了几类问题:手机适配等兼容性问题、修复若干bug、用户体验晚上、新功能,比如文章搜索。

    1. 手机访问适配。

    2.增加文章栏目的全文检索。

    3.文章评论,问答等栏目,优先显示用户的昵称nickname,如果没有显示用户名username,如果没有,显示默认的匿名用户名称“无名”。

    4.登录跳转更友好。

       直接访问某个需要登录的url,比如/addArticle,可能会跳转到登录页面login.html。

       登录成功之后,自动跳转到/addArticle这个登录前的页面,继续登录之前的操作。

    5.后端代码手动加log,系统内部手动日志与第三方及系统错误日志分离,在代码中多记录一些日志,方便查看系统的稳定性和修正潜在bug。

    6.登录之后,显示用户名,增加注销功能。

    7.Sitemap网站地图生成进一步封装,BriefCMS系统也可以使用工具方法。

       写代码的时候,对每一个功能要有适当的分解。与业务无关的逻辑,完全可以提取抽象成工具方法。

        生成网站地图,数据是和具体的网站紧密耦合的,而构造xml和任何网站都没有关系。把数据提取和组装代码,放在具体的网站项目。

        而根据标准数据,生成sitemap.xml单独提取成工具方法。

        这样,小雷FansUnion官网和BriefCMS2个网站都可以使用了,节省了代码。

     今后有再多的网站,都可以这么做,换成任何语言,思路都可以这么做。

    8.问道雷答的回答和文章的评论,增加详情页面,SEO优化。

    9.优化菜单,不常用的折叠成一个“更多”,同时解决了小屏幕下,菜单换行遮住下方正文的问题。

       正文内容宽度缩小,最多只占8/12的宽度。

    10.解决部分详细页面出现js访问404的问题。

       比如http://fansunion.cn/ask/detail/100077.html

    11.再次解决了百度UEditor图片无法上传的问题。

      把百度源码从项目中删除了,需要把jar包拷贝到lib目录。

    12.不再使用SpringMVC的ContentNegotiatingViewResolver,因为我发现百度和360等搜索引擎收录了很多JSON格式的内容。

       比如“http://fansunion.cn/service

    {"page":{"totalCount":5,"totalPage":1,"pageNo":1,"pageSize":10,"orderBy":null,"order":null,"params":{},"rows":[{"content":" 拜小雷为师,...

    fansunion.cn/service 2014-11-13  - 百度快照 - 评价 - 翻译此页”

    “http://fansunion.cn/code

    {"page":{"totalCount":7,"totalPage":1,"pageNo":1,"pageSize":10,"orderBy":"id","order":"desc","params":{},"rows":[{"content":" SSH框架...

    fansunion.cn/code 2014-11-16  - ”


    “http://fansunion.cn/code

    { page :{ totalCount :8, totalPage :1, pageNo :1, pageSize :20, orderBy : id , order : desc , params :{}, rows :[{ content : , summary : 在线演示:小游戏-会飞的猪-FlappyPig , updat...

    fansunion.cn/code 2014-11-09”


       另外发现,新版网站上线这么久,百度的收录很少。

       按说新版网站,结构更加清晰了,会逐步增多才对,但是没有。


       下面的代码,不再使用了。

       <bean

    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">

    <property name="defaultContentType" value="application/json" />

    <property name="mediaTypes">

    <map>

    <entry key="html" value="text/html" />

    <entry key="json" value="application/json" />

    <entry key="xml" value="application/xml" />

    </map>

    </property>

    <property name="defaultViews">

    <list>

    <bean

    class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">

    </bean>

    <bean id="marshallingView"

    class="org.springframework.web.servlet.view.xml.MarshallingView">

    <property name="marshaller">

    <bean id="xStreamMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller">

    <property name="autodetectAnnotations" value="true" />

    </bean>

    </property>

    <property name="contentType" value="application/xml" />

    </bean>

    </list>

    </property>

    </bean>

    手动构造JSON格式的数据,并返回。

  • 相关阅读:
    Linux xargs 命令
    Shell 流程控制
    springSecurity---AuthenticationProvider解析
    nginx unknown directive "stream"
    Linux清空文件内容
    解决RabbitMQ报错 Error: unable to connect to node rabbit@localhost:
    mysql bit类型 使用Mysql命令行查询的时候无法看到其值
    今日进度
    每周总结
    今日进度
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463037.html
Copyright © 2020-2023  润新知