Javascript 如何在js中获取执行js的绝对路径?

Javascript 如何在js中获取执行js的绝对路径?,javascript,webpack,Javascript,Webpack,例如,HTML页面包含js,js的src是/js/test.js,在这个js文件中,我可以在执行js时获得/js/test.js字符串吗 \uu dirname和process.cwd()都可以在Node.js中完成,但在broswer的js中不起作用 有人能帮我吗?HTML <script src="/some/path.js" id="script1"></script> <script src="/some/path2.js" id="script2">

例如,HTML页面包含js,js的src是
/js/test.js
,在这个js文件中,我可以在执行js时获得
/js/test.js
字符串吗

\uu dirname
process.cwd()
都可以在Node.js中完成,但在broswer的js中不起作用

有人能帮我吗?

HTML

<script src="/some/path.js" id="script1"></script>
<script src="/some/path2.js" id="script2"></script>

在浏览器中,通过HTTP请求加载脚本。URI(主机名后的位)不一定对应于文件名

如果只需要
src
属性,那么可以参考,它建议使用来获取脚本元素

const path = document.currentScript.getAttribute('src');

事实上,这不是我的答案。因为路径可能是相对路径,我想要的是绝对路径如果你指的是服务器内文件的绝对路径,那么我认为你运气不好。您只能在客户端请求该文件时编辑该文件,这将使该问题与javascript完全无关,而是与您选择的web服务器相关。嗯。。另一个答案如何满足您的需求?这两个答案本质上是相同的(
getAttribute('src')
)。唯一的区别是我们从文档中获取脚本元素的方式(
currentScript
vs
querySelector
),但另一种解决方案可以获取绝对路径。。你可以测试一下
const path = document.currentScript.getAttribute('src');