武汉今鱼乐娱网络
武汉今鱼乐娱网络
  • 发布:2022-08-13 11:30
  • 更新:2022-11-12 19:24
  • 阅读:720

动态设置meta标签显示不正确,需要手动刷新一次

分类:uniCloud

动态设置seo,前端数据都能拿到,但是页面右键查看源代码不同步,meta标签不能马上渲染(但是在源代码界面强制刷新后就可以拿到当前页面对应的数据)项目基于v3+unicloud+ssr方式,请问各位大佬是什么问题导致

2022-08-13 11:30 负责人:无 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

看你log信息是先打印的 this.seo 然后是 base-page-meta 是吗?
有没有可能是操作数据的顺序不对,可以断点看下执行顺序

  • 武汉今鱼乐娱网络 (作者)

    已经测试过,在浏览器查看源代码,显示的是上一次的SEO内容,在当前页面刷新,则可以显示正确的META内容

    2022-08-15 16:13

  • 武汉今鱼乐娱网络 (作者)

    目前系统已经发布到线上,可以直接线上体验出现的问题。

    www.whsylt.com

    2022-08-29 11:31

武汉今鱼乐娱网络

武汉今鱼乐娱网络 (作者) - 武汉软件开发公司,可实地考察

已经测试过,在浏览器查看源代码,显示的是上一次的SEO内容,在当前页面刷新查看源代码,则可以显示正确的META内容

武汉今鱼乐娱网络

武汉今鱼乐娱网络 (作者) - 武汉软件开发公司,可实地考察

目前系统已经发布到线上,可以直接线上体验出现的问题。
www.whsylt.com

  • DCloud_UNI_WZF

    我这边打开看着是对的,meta中是上面log里面的数据

    2022-08-29 11:37

  • 武汉今鱼乐娱网络 (作者)

    回复 DCloud_UNI_WZF: 在浏览器查看源代码,显示的是上一次的SEO内容。用模拟蜘蛛爬取工具,检测到的也是上一个页面的Tilte description 等内容

    2022-08-29 11:44

  • 武汉今鱼乐娱网络 (作者)

    回复 DCloud_UNI_WZF: 你可以切换几个页面,然后看看对应的title、description等 都是不对的 显示的是上一个页面的内容

    2022-08-29 11:46

  • DCloud_UNI_WZF

    回复 m***@qq.com: 提供下测试工程吧

    2022-08-29 11:48

  • 武汉今鱼乐娱网络 (作者)

    回复 DCloud_UNI_WZF: 方便留个联系方式,我直接发给你吗?还是直接把代码贴到这里?

    2022-08-29 11:54

  • DCloud_UNI_WZF

    回复 m***@qq.com: 可以上传附件的,注意提供最简可复现demo,谢谢

    2022-08-29 12:03

  • 武汉今鱼乐娱网络 (作者)

    回复 DCloud_UNI_WZF: demo已上传

    2022-08-29 13:53

  • DCloud_UNI_WZF

    回复 m***@qq.com: vuex action 中直接写 setTimeout,serverPrefetch 是不会等到 setTimeout 之后再拿数据的,改成


    return new Promise((resolve) => {  
    setTimeout(() => {
    commit("set_seo", data)
    resolve()
    }, 1000);
    })

    测试可以的

    2022-08-29 16:09

  • DCloud_UNI_WZF

    回复 m***@qq.com: 另外,参照文档,serverPrefetch 和 fetchData 要用return 返回结果

    return this.fetchData() 这样

    2022-08-29 16:11

  • 武汉今鱼乐娱网络 (作者)

    回复 DCloud_UNI_WZF: 看一下我最新上传的附件,页面SSR没问题,但是组件SSR明显有数据延迟

    2022-08-30 10:49

武汉今鱼乐娱网络

武汉今鱼乐娱网络 (作者) - 武汉软件开发公司,可实地考察

组件SSR数据有明显延迟问题

  • DCloud_UNI_WZF

    看起来是代码执行过程的时间差,你的需求是什么

    2022-08-30 14:35

  • 武汉今鱼乐娱网络 (作者)

    回复 DCloud_UNI_WZF: 在组件中,无法正确动态设置title信息(还是前面提到的问题)

    2022-08-30 15:13

  • DCloud_UNI_WZF

    回复 m***@qq.com: 明白你的意思了,其实还是之前类似的问题,父组件都没写serverPrefetch生命周期,也就不会等子组件serverPrefetch生命周期的异步回调完成,所以拿不到这边更新后的数据,如果你想抽离公共逻辑,可以试下 mixin,我简单试了下是可以的

    2022-08-30 15:38

  • 武汉今鱼乐娱网络 (作者)

    回复 DCloud_UNI_WZF: 经测试,组件serverPrefetch不生效,看楼下截图

    2022-08-30 15:58

武汉今鱼乐娱网络

武汉今鱼乐娱网络 (作者) - 武汉软件开发公司,可实地考察

组件serverPrefetch不生效
页面部分

        serverPrefetch() {  
            return this.init();  
        },  
        methods: {  
            init() {  
                return new Promise((res) => {  
                    setTimeout(() => {  
                        let date = new Date().toLocaleString();  
                        console.log("detail date: ", date);  
                        this.$store.dispatch("getSeo", {  
                            title: "我是详情页面",  
                            description: date,  
                            keywords: "详情页面关键字1,关键字2,关键字3"  
                        }).then(res)  
                    }, 500)  
                })  
            }  
        }
7***@qq.com

7***@qq.com

问题解决了吗? 有标准方法了吗? 我想学习下

该问题目前已经被锁定, 无法添加新回复