提问者:小点点

如何在节点Express中包含css文件?


我知道这个问题已经被问了很多次了,但是我似乎看不出我的代码有什么问题。 我正在尝试创建一个pdf通过使用html文件。 这是可行的,但我包括的css文件没有被包括。 我已经通读了所有以前提出的问题,并尝试了解决方案,但我的问题仍然没有解决。 这是我的密码。

html文件:

<!DOCTYPE html>
<html>
    <head>
        <meta charest="utf-8" />
        <title>Hello world!</title>
        <link rel="stylesheet" href="/css/template.css">
    </head>
    <body>
        <div class="document">
            <div class="page" size="A4">
                <h1>testing this!!</h1>
                    {{#each tickets}}
                  <div class="section">
                    <div>
                      <div class="ticketNumber"  >
                        No. {{this.ticketNumber}}
                      </div>
                    </div>
                    <div>
                      <div class="generalStyle">{{this.prizeName}}</div>
                      <div class="generalStyle">
                        Name: {{this.customerName}}
                      </div>
                      <div class="generalStyle">
                        Phone: {{this.customerPhone}}
                      </div>
                        <div class="generalStyle">
                          Address: {{this.customerAddress}}
                        </div>
                    </div>
                </div>
                {{/each}}
            </div>
        </div>
    </body>
</html>

和app.js中

app.use(express.static(path.join(__dirname, 'public')));

最后,这是我通过发送html文件创建pdf的地方。

  var document = {
    html: html,
    data: {
      tickets: tickets,
    },
    path: "./output.pdf",
  };
  pdf.create(document, options)
    .then(res => {
        console.log("created!!", res)
    })
    .catch(error => {
        console.error(error)
    });
};

创建文件,但不包括css。 有什么解决办法吗?


共1个答案

匿名用户

app.use('/public', express.static('public'));
<link rel="stylesheet" href="/public/css/template.css">
  • 所有文件都在“/public/”
  • 处提供
  • 文档位于https://expressjs.com/en/starter/static-files.html
  • 您使用的语句用于创建静态服务器,它需要一个index.html,可以被index.html用作“http://url/index.html”和“http://url/css/template.css”,可以被index.html访问。 它使用“/”路由为文件提供服务
  • 但您使用的是模板引擎,因此最好指定要为静态文件提供服务的路径。