簡體   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