v 站的前端大佬们,紧急求助!

24 天前
 zczxc44

我司在做一个一键报告生成的功能,开始后端和我讲我只需要给他提供静态的 html 文件就行,所以我使用了 nuxt3 静态化生成报告的 html 文件,但是今天出了新状况我们没有把整体业务搞明白,我开始以为要什么报告我本地跑一下就行了,生成好了静态化文件丢给他,今天发现这个操作是用户触发的!也就是说用户在 app 上点击按钮=>触发我的静态化功能 生成静态化的 html 文件=>java 后端拿到静态化的产物=>用这个产物去调用 java 后端的一个服务生成报告,马上要上线这个功能了,不知道咋解决了,大佬们帮帮忙

1395 次点击
所在节点    问与答
10 条回复
darkway
24 天前
你还有多少时间?距离上线
TimG
24 天前
不知道理解的对不对哈。可以把数据和展示效果都预留出来,结尾搞个 script 块,放个 js 变量等于占位符,让后端传文件给用户之前把占位符替换成数据,剩下的交给 js ,用户打开静态文件时渲染。

```js
//html&css

<script>
let context = {{value}}
//将 context 反序列化装在对应的数据中
</script>
```

用户点击获取报告,后端提取数据,序列化成字符串替换掉 {{value}},把拼装好的 html 文件传回去。
microscopec
24 天前
方案 1:预构建 + 动态内容注入
const template = fs.readFileSync('report-template.html', 'utf8')
const html = template.replace('{{DATA}}', JSON.stringify(reportData))

方案 2:服务端部署 Nuxt3 ,将你的 Nuxt3 项目部署为一个服务,用户点击 → Java 后端 → 调用 Nuxt3 服务 API → 获取 HTML → 生成报告
export default defineNuxtConfig({
nitro: {
preset: 'node-server'
}
})
murmur
24 天前
那你应该是理解错了,后端要的可能是 html 变模版,你得先问他是什么模版语言
zczxc44
24 天前
@darkway 一个礼拜。。
lichuyi
23 天前
后端需要 html 来生成报告,html 是什么,html 只是一段有规律的字符串而已,任意语言都可以生成
shuangchen
23 天前
想复杂了吧 后端应该是你给他一个 html 静态页面 他来实现动态模版
horizon
23 天前
1. nextjs 有 ISR , 不知道 nuxt 有没有
2. 按照上面说的,给后端写个模版,后端填充内容
leokun
23 天前
ssg 的页面,如果篡改里面的内容,应该会影响水合吧
leokun
23 天前
我觉得应该就用 nuxt3 生成 ssr 的页面服务,在 nuxt 服务中调用 java 接口渲染页面
然后在页面上用保存按钮导出类似 pdf 这样的东西(网页截图)

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

https://ex.noerr.eu.org/t/1140177

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

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

© 2021 V2EX