[英]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.