这是一个死了的简单问题,毫无疑问是一个重复的问题,但我搜索了四周,还没有找到有效的答案。 (另外我来自的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'是一个很好的解决方案。 –