javascript:我怎么知道.js self在哪里?

javascript:我怎么知道.js self在哪里?,javascript,relative-path,Javascript,Relative Path,我写了一个小的javascript库,它使用了一个图像。 我想构建如下目录结构: /lib /mylib main.js /img main.png /other libraries... index.html /解放党 /迈里布 main.js /img main.png /其他图书馆。。。 index.html 但是如果我硬编码图像路径lib/mylib/img/main.png,我的库就不能用于其他目录结构 我想使用的是相对于main

我写了一个小的javascript库,它使用了一个图像。 我想构建如下目录结构:

/lib /mylib main.js /img main.png /other libraries... index.html /解放党 /迈里布 main.js /img main.png /其他图书馆。。。 index.html 但是如果我硬编码图像路径
lib/mylib/img/main.png
,我的库就不能用于其他目录结构

我想使用的是相对于main.js self的“相对路径”。这样我就可以编写
path+'img/main.png'
来访问图像


我怎么知道main.js在哪里

您可以从
标记中提取它:

function getScriptPath() {
  var scriptTags = document.getElementsByTagName('script');

  return scriptTags[scriptTags.length - 1].src.split('?')[0].split('/').slice(0, -1).join('/') + '/';
}

因此,如果您的JavaScript库包含在某个页面中,那么
main.js
的路径是否类似于
http://example.com/lib/mylib/main.js
?是的。(我需要15个字符…)这是一个解决方案。但是有了这个实现,我的lib无法与require.js这样的模块管理器一起工作…我通常不用于导入.js。相反,我使用RequireJS()来管理它们。我认为该框架实际上动态地添加了
标记来加载您的框架。