V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zczxc44
V2EX  ›  问与答

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

  •  
  •   zczxc44 · 24 天前 · 1391 次点击

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

    10 条回复    2025-06-23 14:03:22 +08:00
    darkway
        1
    darkway  
       24 天前
    你还有多少时间?距离上线
    TimG
        2
    TimG  
       24 天前 via Android
    不知道理解的对不对哈。可以把数据和展示效果都预留出来,结尾搞个 script 块,放个 js 变量等于占位符,让后端传文件给用户之前把占位符替换成数据,剩下的交给 js ,用户打开静态文件时渲染。

    ```js
    //html&css

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

    用户点击获取报告,后端提取数据,序列化成字符串替换掉 {{value}},把拼装好的 html 文件传回去。
    microscopec
        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'
    }
    })
    murmur
        4
    murmur  
       23 天前
    那你应该是理解错了,后端要的可能是 html 变模版,你得先问他是什么模版语言
    zczxc44
        5
    zczxc44  
    OP
       23 天前
    @darkway 一个礼拜。。
    lichuyi
        6
    lichuyi  
       22 天前
    后端需要 html 来生成报告,html 是什么,html 只是一段有规律的字符串而已,任意语言都可以生成
    shuangchen
        7
    shuangchen  
       22 天前
    想复杂了吧 后端应该是你给他一个 html 静态页面 他来实现动态模版
    horizon
        8
    horizon  
       22 天前
    1. nextjs 有 ISR , 不知道 nuxt 有没有
    2. 按照上面说的,给后端写个模版,后端填充内容
    leokun
        9
    leokun  
       22 天前
    ssg 的页面,如果篡改里面的内容,应该会影响水合吧
    leokun
        10
    leokun  
       22 天前
    我觉得应该就用 nuxt3 生成 ssr 的页面服务,在 nuxt 服务中调用 java 接口渲染页面
    然后在页面上用保存按钮导出类似 pdf 这样的东西(网页截图)
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3334 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 00:18 · PVG 08:18 · LAX 17:18 · JFK 20:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.