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

2025 年 6 月 21 日
 zczxc44

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

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

```js
//html&css

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

用户点击获取报告,后端提取数据,序列化成字符串替换掉 {{value}},把拼装好的 html 文件传回去。
microscopec
2025 年 6 月 22 日
方案 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
2025 年 6 月 22 日
那你应该是理解错了,后端要的可能是 html 变模版,你得先问他是什么模版语言
zczxc44
2025 年 6 月 22 日
@darkway 一个礼拜。。
lichuyi
2025 年 6 月 23 日
后端需要 html 来生成报告,html 是什么,html 只是一段有规律的字符串而已,任意语言都可以生成
shuangchen
2025 年 6 月 23 日
想复杂了吧 后端应该是你给他一个 html 静态页面 他来实现动态模版
horizon
2025 年 6 月 23 日
1. nextjs 有 ISR , 不知道 nuxt 有没有
2. 按照上面说的,给后端写个模版,后端填充内容
leokun
2025 年 6 月 23 日
ssg 的页面,如果篡改里面的内容,应该会影响水合吧
leokun
2025 年 6 月 23 日
我觉得应该就用 nuxt3 生成 ssr 的页面服务,在 nuxt 服务中调用 java 接口渲染页面
然后在页面上用保存按钮导出类似 pdf 这样的东西(网页截图)

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

https://study.congcong.us/t/1140177

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

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

© 2021 V2EX