繁体   English   中英

相对路径不起作用,但绝对有效

[英]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(...) function 在文件的相对路径中根据自己的规则解析。

但是, Canvas.loadImage 因为它是在 C 中实现的加载部分,所以它可以具有与 Node 不同的行为,并且没有当前 js 文件位置的上下文。

我建议您明确地根据__dirname解析路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM