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