繁体   English   中英

如何使用javascript将具有相对路径的脚本注入到html

[英]How to inject script with relative path to html using javascript

当我尝试使用 javascript 将脚本注入到 html 页面时遇到问题。 这个脚本必须设置相对路径,就像它在我的 cshtml 文件中一样:

<!DOCTYPE html>

<html>
<head>
    @{
        if (Request["debug"] != "false")
        {
            <script src='~/Scripts/script-first-debug.js'></script>
            <script src='~/Scripts/script-second-debug.js'></script>
        }
        else
        {
            <script src='~/Scripts/script-first.js'></script>
            <script src='~/Scripts/script-second.js'></script>
        }
    }

</head>
<body>
    @RenderBody()
</body>
</html>

它是我的打字稿文件的一部分,我从 cshtml 文件中移动了这个 .net 案例:

var scriptFirst = document.createElement('script');
var striptSecond = document.createElement('script');

scriptFirst.type = 'text/javascript';
striptSecond.type = 'text/javascript';

scriptFirst.src = this.debug ? '/Scripts/script-first-debug.js' : '/Scripts/script-first.js';
striptSecond.src = this.debug ? '/Scripts/script-second-debug.js' : '/Scripts/script-second.js';

$('head').append(scriptFirst).append(striptSecond);

在本地主机上一切都很好,但是当此代码部署在我的应用程序生产实例上时,我遇到了问题。 在我的生产应用程序实例上,我添加了一些字符串来寻址。 例如:

在本地主机上,script-first.js 的路径是: https://localhost:80/Scripts/script-first.js

在生产中,这个文件的路径是这样的: https : //www.myproblematicapplication.com/someString/Scripts/script-first.js

你有什么提示我该怎么做? 我试图在堆栈溢出和其他页面上找到一些解决方案,但不幸的是还没有成功。

您的相对路径指向托管在该主机 (www.myproblematicapplication.com) 上的根文件夹(DOCROOT/文档根)。 但是文件不在该文件夹中。 要解决此问题,假设文件与将它们添加到应用程序的打字稿文件位于同一文件夹中:

改变:

'/Scripts/script-first-debug.js' 

到:

'./Scripts/script-first-debug.js' 

在所有网址中。

注意前导点。 这表示“在与此文件相关的同一文件夹中找到这些文件”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM