gpt4 book ai didi

javascript - ResolveUrl 不适用于本地主机

转载 作者:行者123 更新时间:2023-11-30 20:49:01 25 4
gpt4 key购买 nike

我的网站图片有问题。当使用图像源的相对路径时,它在开发中有效,但在部署中无效。所以我实现了下面的代码:

<script>
var baseUrl = "<%= ResolveUrl("~/") %>";

var src = baseUrl + "/images/somegif.gif";

$(".loading").attr("src", src);

</script>

问题是在检查 baseUrl 的值时,它是“/”。我如何让它成为一个值:“http://localhost:[portnumber]/”?

不幸的是,由于物流原因,我还不能在已部署的网站上进行测试。但我需要它为开发和部署工作。

  • 我正在使用 Visual Studio 2015,在 IIS Express 上本地运行

最佳答案

你不需要关心主机和端口,你可以只使用:

var src = '<%= ResolveUrl("~/images/somegif.gif") %>' ;
$(".loading").attr("src", src);

它应该在开发和生产环境中工作。如果你真的需要完整的路径你可以使用Request.Url.Scheme, Request.Url.Host and Request.Url.Port来构造一个绝对 URL。

基本上,要在 Asp.Net 中指定 Html 元素的路径,您有以下三种选择:

1) 使用Html 格式的绝对路径 例如/images/somegif.gif。您可以在应用程序的任何部分使用它,它会起作用。它将与

相同
http://localhost:[port]/images/somegif.gif

http://your-production.domain/images/somegif.gif

images 文件夹位于网站的根文件夹中时,分别用于 dev 和 prod。但是,当您将页面和图像从一个文件夹移动到另一个文件夹时,这可能会带来不便。那么你可以使用第二个选项。当您将您的网站作为 IIS 中的子应用程序时,它也可能会失败。然后你可以使用第三个选项。

2) 使用Html 格式的相对路径 例如图像/somegif.gif。如果您的页面位于 /someFolder/page.aspx 中,则路径 images/somegif.gif 将与以下内容相同:

http://localhost:[port]/someFolder/images/somegif.gif

http://your-production.domain/someFolder/images/somegif.gif

分别用于开发和生产

3) 在 Asp.Net 中使用 ~ 运算符。您可以将它与服务器控件或 ResolveUrl() 等函数一起使用。这种方法比第一种方法更受欢迎,因为它没有上述缺陷。

关于javascript - ResolveUrl 不适用于本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48384000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com