相对路径不起作用但绝对路径有效
Relative path not working but absolute works
我正在尝试加载图像以在 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 Pro 21H2
require(...)
的行为总是由require.resolve(...)
函数根据自己的规则在文件的相对路径中解析。
然而,Canvas.loadImage
。因为它是用 C 实现的加载部分,它可以有与 Node 不同的行为,并且没有当前 js 文件位置的上下文。
我建议您根据 __dirname
显式解析路径。
我正在尝试加载图像以在 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 Pro 21H2
require(...)
的行为总是由require.resolve(...)
函数根据自己的规则在文件的相对路径中解析。
然而,Canvas.loadImage
。因为它是用 C 实现的加载部分,它可以有与 Node 不同的行为,并且没有当前 js 文件位置的上下文。
我建议您根据 __dirname
显式解析路径。