vue3 静态化问题请教

2022-08-01 01:22:46 +08:00
 kernel365
各位大佬好,

最近在做一个多语言多域名的 vue3 前端项目。页面也不多。

第一版用的是传统的开发方式,浏览器端渲染,判断域名,vuevu-i18n 载入特定的语言。 (一个域名只有一个语言)。

项目本身也不大,但是 chrome lighthouse 看到载入时间很不理想。同时网站有些面向谷歌 seo 的需求。

所以下一版实现,就想怎么静态化一下,sSG(优先考虑)或者 SSR 。但是我们这里是依赖域名来判断语言,导致我们无法提前知道语言包,无法提前静态化。

特来向各位大佬求助。


另外一个角度就是,先生成 html ,然后以静态文件的方式 serve 但是怎么样 让不同域名打开不同的 html 呢?

语言有 20+  一个域名配一套 html 有点麻烦,想让他们共用一套或个位数套代码。
1873 次点击
所在节点    Vue.js
6 条回复
hronro
2022-08-01 06:59:32 +08:00
根据不同域名载入不同页面,这个是 nginx 最基本的功能了吧
vivipure
2022-08-01 09:07:55 +08:00
感觉可以通过 SSG 打包一份就 ok 了,将所有的域名都指向构建好的页面。在 JS 中写逻辑,根据域名加载语言包。
9ki
2022-08-01 09:09:39 +08:00
nextjs (React 的 SSR 框架) 是原生支持楼主说的功能的, vue 的话可以试试 https://i18n.nuxtjs.org/
snoopyhai
2022-08-01 09:11:50 +08:00
如果没记错:
vue-i18n 是 url 保持不变, 更换语言包
而 nuxt 中的 i18n 插件.是每种语言有一个独立的 url. 比如默认: abc.com/index; 英文: abc.com/en/index;
既有静态化的需求, 又有多语言的需求. 试试 nuxt?
duan602728596
2022-08-01 10:56:31 +08:00
可以根据 ip 提前知道位置吧
ragnaroks
2022-08-01 16:08:43 +08:00
SSG 将所有 locale 加载并使用一个默认 locale ,显示一个加载组件,通过脚本判断域名后执行更新操作,隐藏加载组件

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/869843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX