node.js - EJS View 不在 PDF-HTML 中呈现静态文件
问题描述
我有一些问题要解决,也许有人可以帮帮我。
我有一个 ejs 页面,里面有带有静态路由的图像。我需要使用 html-pdf 节点模块将此 ejs 文件转换为 PDF。那是正确的,但是,没有呈现静态文件。
当我使用确切的文件但直接渲染到浏览器时,从 app.js 调用它,它工作得很好。
这是它工作时的案例用法:
app.use("/public", express.static(path.join(__dirname, "../public")))
app.set("views", path.join(__dirname, "views"))
app.set("view engine", "ejs")
app.get("/", function (req, res) {
res.render("control", body_values)
})
当我调用 ejs 文件转换为 PDF 时:
exports.print = async (URL, title, textFields, options) => {
const createPDF = (file, options) =>
new Promise((resolve, reject) => {
pdf
.create(ejsData, options)
.toFile("./temp/" + title + ".pdf", async (err, res) => {
if (err !== null) {
reject(err)
} else {
resolve(res.filename)
}
})
})
const file = path.resolve(__dirname, URL)
const fileString = fs.readFileSync(file).toString()
const ejsData = ejs.render(fileString, textFields)
return await createPDF(file, options)
}
上面的代码将创建 PDF 文件并正确传递所有值,但不会在 public 中呈现静态文件
解决方案
推荐阅读
- sql - 如何使用匹配值使用 CSV 文件中的数据更新 Postgres 中的列
- anaconda - Anaconda 安装错误
- javascript - 有没有办法将数据流式传输到一个 blob(或生成一个巨大的 blob)
- ios - 使用键从 2 个 JSON 对象创建单个 JSON 字符串
- windows - SSMS 17.5当单元格数据大于可用显示区域时不显示椭圆
- acumatica - 智能面板中的选择器给出错误'
在系统中找不到。 - c# - 如何使主栏中的页面对除管理员以外的所有人隐藏?
- c# - 从 C# 控制台应用程序打开网页
- php - 如何避免 php 解析整个 php 文件并包含并使其仅解析将使用的内容?
- for-loop - 处理mathematica目录中的大量文件