javascript - 相对路径不起作用,但绝对路径起作用

标签 javascript node.js canvas path

我正在尝试加载图像以将其与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'); 工作得很好,而且在同样的情况下文件...

文件夹结构:

Folder

Node.js 版本 16.10; Windows 10 专业版 21H2

最佳答案

require(...) 的行为总是根据require.resolve(...)在文件的相对路径中根据自己的规则进行解析功能。

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

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

关于javascript - 相对路径不起作用,但绝对路径起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70295588/

相关文章:

javascript - 将基于行的 JSON 转换为基于列的 JSON

javascript - Angular 2 登录指令和 location.createComponent

node.js - Knex 从时间列和日期列中获取格式化时间

javascript - 是否可以从对象函数内部在 Canvas 上绘制?

javascript - 如何从另一个 iFrame 中清除 iFrame 的内容

javascript - 用无序列表替换下拉列表。 JavaScript 方式

javascript - 如何在服务器端呈现时禁用或阻止 ReactJS 查找文档?

javascript - 为 Mongoose 运行多个 Mocha 测试文件被打破

javascript - 使用canvas2image将FLOT图表保存到图像文件

ruby-on-rails - Rails for Zombies - 实验室