javascript:我怎么知道.js self在哪里?
我写了一个小的javascript库,它使用了一个图像。 我想构建如下目录结构: /lib /mylib main.js /img main.png /other libraries... index.html /解放党 /迈里布 main.js /img main.png /其他图书馆。。。 index.html 但是如果我硬编码图像路径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
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()来管理它们。我认为该框架实际上动态地添加了
标记来加载您的框架。