jsReports 资产 nodejs

jsReports assets nodejs

我正在尝试将 css 样式表作为资产添加到 jsReport 报告中。

  jsreport.render({
    template: {
      content: `

     
      <html>
      <link rel="stylesheet" type="text/css" href="/css/style.css">
          <head>
              <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
              <style>
                  {#asset /css/style.css}
              </style>
          </head>
          <body>
             ...
          </body>
      </html>

      `,
      
      engine: 'handlebars',
      recipe: 'html',
      assets: {
        allowedFiles: "static/**.js",
        publicAccessEnabled: true,
        searchOnDiskIfNotFoundInStore: true,
      },
    },
    data: newCart
  }).then((out) => {
    out.stream.pipe(res);
  }).catch((e) => {
    res.end(e.message);
  });

当我尝试加载资产时,问题出在标签内。 关于如何执行此操作的任何想法? 提前致谢! :)

对于 jsreportonline.net 我总是将资产放在第一行,所以也许像下面这样的东西会起作用。

    template: {
      content: `

      <style>
          {#asset /css/style.css @encoding=utf8}
      </style>     
      <html>
      <link rel="stylesheet" type="text/css" href="/css/style.css">
          <head>
              <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
          </head>
          <body>
             ...
          </body>
      </html>

      `,
      
      engine: 'handlebars',
      recipe: 'html',
      assets: {
        allowedFiles: "static/**.js",
        publicAccessEnabled: true,
        searchOnDiskIfNotFoundInStore: true,
      },
    },
    data: newCart
  }).then((out) => {
    out.stream.pipe(res);
  }).catch((e) => {
    res.end(e.message);
  });`

我“解决”了直接在标签中粘贴 css 的问题,因为问题出在导入#asset 上。

不是最好的解决方案,但它有效:)