chenzefeng09
chenzefeng09
  • 发布:2020-11-17 17:04
  • 更新:2021-09-29 13:53
  • 阅读:3311

uniapp h5版本ssr运行报错

分类:uni-app

问题描述
配置uni-app项目h5端的ssr,无法运行
复现步骤
demo及复现步骤已总结到链接
https://github.com/chenzefeng09/uniapp-ssr-demo

预期结果

根据Issue2194中的回复,认为uni-app目前是可以手动配置开启ssr的。

实际结果
只有当测试页面没有style标签的时候才能渲染出节点,如果有style,会报500错误。
无法运行,报错
TypeError: Cannot read property 'style' of undefined

20201123更新:
根据调试定位,上文中的报错TypeError: Cannot read property 'style' of undefined
发生在这段代码中
https://github.com/dcloudio/uni-app/blob/d2d78c459af50216abab6fc41d6f12680fc35756/packages/vue-cli-plugin-uni/packages/vue-loader/lib/codegen/styleInjection.js#L102

如果将这一段自定义代码恢复为原生的vue-loader代码,则运行时不会报错。但是样式依然是乱的,感觉width/height等宽高样式都没有转换成适合屏幕尺寸的,而是按照style里写的原始值来显示的。但是编译为普通的uniapp h5的话(前端渲染)样式是正常的

系统信息:

发行平台: [H5平台]
操作系统 [Mac]
HBuilderX版本 [无]
uni-app版本 [2.0.0-28620200814002]
设备信息 [Mac Chrome]
补充信息
[Node版本 12.19.1]
[uni-app自定义的vue-loader是否对ssr有影响?]

2020-11-17 17:04 负责人:DCloud_UNI_GSQ 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

你是需要seo方案,还是就是要服务器渲染?
你的前端是部署到unicloud的前端网页托管里的吗?

  • chenzefeng09 (作者)

    要做seo,没有部署到unicloud的前端网页托管

    2020-11-19 08:31

  • chenzefeng09 (作者)

    如果是服务器渲染,目前用Uniapp是否有无法解决的问题?因为竞品的h5是服务端渲染的,我们还是想尽可能的看齐

    2020-11-19 16:07

  • DCloud_heavensoft

    回复 chenzefeng09: seo目前简单的方案是服务端识别爬虫ua,自动重定向到一个新接口,吐出静态html内容,这个页面不给用户看只供爬虫读内容,所以页面开发也会很简单。你说的竞品是指什么?

    2020-11-19 17:40

  • chenzefeng09 (作者)

    回复 DCloud_heavensoft: 这种方式不会被搜索引擎降权或者惩罚吗?竞品说的是我们公司的产品对应的友商的产品

    2020-11-19 18:20

  • DCloud_heavensoft

    回复 chenzefeng09: 不会。https://uniapp.dcloud.io,这个文档网站用的是三方框架都是js渲染的,就单独做了根据爬虫识别的做法。这不算违规,根源毕竟是百度爬虫不智能造成的

    2020-11-19 18:59

  • 伯爵长风

    回复 DCloud_heavensoft: 你好,我想问下全网站的页面都要做SEO的话,服务端识别爬虫ua然后重定向到新接口能做到返回全页面给爬虫读取吗

    2022-05-13 10:47

DCloud_UNI_GSQ

DCloud_UNI_GSQ

收到,针对报错部分,后续会进行调整

1***@qq.com

1***@qq.com - 一个很菜的前端妹子

请问下这个seo 的问题你解决了吗? 请问一下 一个大佬提出的:“seo目前简单的方案是服务端识别爬虫ua,自动重定向到一个新接口,吐出静态html内容,这个页面不给用户看只供爬虫读内容” 这个要怎么实现了

DCloud_UNI_CHB

DCloud_UNI_CHB

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