我司在做一个一键报告生成的功能,开始后端和我讲我只需要给他提供静态的 html 文件就行,所以我使用了 nuxt3 静态化生成报告的 html 文件,但是今天出了新状况我们没有把整体业务搞明白,我开始以为要什么报告我本地跑一下就行了,生成好了静态化文件丢给他,今天发现这个操作是用户触发的!也就是说用户在 app 上点击按钮=>触发我的静态化功能 生成静态化的 html 文件=>java 后端拿到静态化的产物=>用这个产物去调用 java 后端的一个服务生成报告,马上要上线这个功能了,不知道咋解决了,大佬们帮帮忙
![]() |
1
darkway 24 天前
你还有多少时间?距离上线
|
2
TimG 24 天前 via Android
不知道理解的对不对哈。可以把数据和展示效果都预留出来,结尾搞个 script 块,放个 js 变量等于占位符,让后端传文件给用户之前把占位符替换成数据,剩下的交给 js ,用户打开静态文件时渲染。
```js //html&css <script> let context = {{value}} //将 context 反序列化装在对应的数据中 </script> ``` 用户点击获取报告,后端提取数据,序列化成字符串替换掉 {{value}},把拼装好的 html 文件传回去。 |
3
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' } }) |
![]() |
4
murmur 23 天前
那你应该是理解错了,后端要的可能是 html 变模版,你得先问他是什么模版语言
|
![]() |
6
lichuyi 22 天前
后端需要 html 来生成报告,html 是什么,html 只是一段有规律的字符串而已,任意语言都可以生成
|
7
shuangchen 22 天前
想复杂了吧 后端应该是你给他一个 html 静态页面 他来实现动态模版
|
8
horizon 22 天前
1. nextjs 有 ISR , 不知道 nuxt 有没有
2. 按照上面说的,给后端写个模版,后端填充内容 |
![]() |
9
leokun 22 天前
ssg 的页面,如果篡改里面的内容,应该会影响水合吧
|
![]() |
10
leokun 22 天前
我觉得应该就用 nuxt3 生成 ssr 的页面服务,在 nuxt 服务中调用 java 接口渲染页面
然后在页面上用保存按钮导出类似 pdf 这样的东西(网页截图) |