我正在尝试加载图像以将其与node.js 中的 Canvas 一起使用。总是收到未找到错误。代码如下:
const Canvas = require('canvas')
async function execute() {
const canvas = Canvas.createCanvas(1080, 611);
const context = canvas.getContext('2d');
const license = await Canvas.loadImage('../../data/media/images/license.jpg');
context.drawImage(license, 0, 0, canvas.width, canvas.height);
}
execute();
它以某种方式与浏览器中的路径一起工作(P:\\bot stuff\\darling.js\\src\\data\\media\\images\\license.jpg
)。
更让我困惑的是 const { color } = require('../../data/config.json');
工作得很好,而且在同样的情况下文件...
文件夹结构:
Node.js 版本 16.10; Windows 10 专业版 21H2最佳答案
require(...)
的行为总是根据require.resolve(...)
在文件的相对路径中根据自己的规则进行解析功能。
但是,Canvas.loadImage
。因为它的加载部分是用 C 实现的,所以它可以具有与 Node 不同的行为,并且没有当前 js 文件位置的上下文。
建议您根据__dirname
解析路径明确地。
关于javascript - 相对路径不起作用,但绝对路径起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70295588/