【问题标题】:Relative path not working but absolute works相对路径不起作用,但绝对有效
【发布时间】:2022-01-14 14:51:47
【问题描述】:

我正在尝试加载图像以将其与 node.js 中的画布一起使用。总是得到一个未找到的错误。代码如下:

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

【问题讨论】:

    标签: javascript node.js canvas path


    【解决方案1】:

    require(...) 的行为总是由require.resolve(...) 函数在文件的相对路径中根据自己的规则来解析的。

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

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

    【讨论】:

    • 这实际上解决了它。使用src/data/media/images/license.jpg 有效,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2012-05-20
    • 1970-01-01
    • 2013-07-06
    • 2012-07-27
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多