這是一個死了的簡單問題,毫無疑問是一個重複的問題,但我搜索了四周,還沒有找到有效的答案。 (另外我來自的Flex /的ActionScript世界難民和我仍然習慣這個世界的Javascript的奇風異俗)哪個上下文是相對路徑?
我測試了Jimp圖像lib和使用例如服從跳(如下圖)。我在「js」目錄下創建了一個新文件「jimpMethods.js」,並將Jimp示例封裝在「testJimp」函數中。我想引用我項目的「資產」目錄中的「house.jpg」。我在我的「index.html」腳本標記中引用「jimpMethods.js」,並在窗口的「onLoad」事件中調用「testJimp」。
我的問題:我如何參考資產文件夾中的圖像文件?腳本本身位於「JS」文件夾中,但它在包含目錄中的「index.html」中執行。
我想:
./assets/house.jpg // this would be relative to the "index.html"
../assets/house.jpg // this would be relative to the "JS" directory
但是都沒有成功。我嘗試多種變化,最終使出
__dirname + '/assets/house.jpg'
該做的工作(這是在電子和__dirname
是一個全局變量引用的應用程序文件夾)。
我想了解我在之前的嘗試中缺少的東西:給出我描述的目錄結構,我的圖像的正確相對路徑是什麼?
我在「JimpMethods.js
var Jimp = require("jimp");
function testJimp() {
var thePath = __dirname + '/assets/house.jpg'
Jimp.read(thePath, function (err, mmyImage) {
if (err) throw err;
mmyImage.resize(256, 256) // resize
.quality(60) // set JPEG quality
.greyscale() // set greyscale
.write(__dirname + '/assets/house-small-bw.jpg'); // save
});
}
原例如服從跳碼
var Jimp = require("jimp");
// open a file called "lenna.png"
Jimp.read("lenna.png", function (err, lenna) {
if (err) throw err;
lenna.resize(256, 256) // resize
.quality(60) // set JPEG quality
.greyscale() // set greyscale
.write("lena-small-bw.jpg"); // save
});
backpath'../'永遠不會使用,因爲相對路徑取決於訪問頁面的文件夾級別。你可以像沒有點一樣使用'/assets/house.jpg'。但__dirname +'/assets/house.jpg'是一個很好的解決方案。 –