问题描述
配置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有影响?]
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