javascript - Javascript 文件中的相对图像 URL - ASP.net MVC 和 IIS 7

标签 javascript asp.net-mvc iis-7

我正在开发一个 Asp.net mvc 应用程序,在 ASP.net 开发服务器上一切正常,但是当我试图在 IIS 7 上托管它时。我遇到了与 URL 解析相关的问题。我在 Javascript 中使用了相对路径来提供图像。脚本文件在 ~/Scripts/文件夹中,图像文件在 ~/Content/images/文件夹中。现在在 javascript 文件中,我试图通过给出相对路径来使用 give http://localhost/WebApp1/controller1/action1/ 它试图在 http://localhost/controller1/action1/ 找到它找不到文件。

最佳答案

如果我的理解是正确的,那么您现在是从 IIS7 的域根目录运行 WebApp,而不是从您的开发环境运行 WebApp1?

因此,如果我的假设是正确的,那么 ~/ 现在应该解析为 http://localhost/ 而不是 http://localhost/WebApp1/

如果这仍然是正确的,那么你的文件夹结构已经全部向上移动了一级,你的 ~/scripts 文件夹在绝对路径中:

http://localhost/Scripts/

和你的图像文件夹:

http://localhost/Content/Images/

为了从您的脚本访问您的图像,您可以使用多种方法。最简单的方法是使用脚本目录中的相对路径:"../Content/Images/MyImage.jpg"

或者您可以使用 document.location.host 在 javascript 中构建完全限定的路径名​​:document.location.host + "/Content/Images/MyImage.jpg"

另一种方法是让 ASP.NET 动态构建脚本的这一部分,以便注入(inject)完全限定的路径名​​。您可以使用 ScriptManager.RegisterStartupScriptScriptManager 来完成此操作。注册脚本 block

给这只猫剥皮的方法真的有很多,它们只是我能想到的前 3 种。

关于javascript - Javascript 文件中的相对图像 URL - ASP.net MVC 和 IIS 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/342364/

相关文章:

asp.net - 在Asp.net 4.0 Crystal 报表中显示图像

asp.net - 由于检索用户的本地应用程序数据路径失败,无法生成 SQL Server 的用户实例

asp.net - 如何在任何给定时刻找到我的网站 (IIS7/asp.net) 的访问者/用户数量?

javascript - 确保 JavaScript 中的条件始终为真

javascript - 将 d3 地理图 block 中的缩放限制为 'maximum'

c# - viewModel as viewModelExtended,类型转换?

c# - 使用 MSpec(BDD 指南)对 ASP.NET MVC Controller 操作执行非常相似的规范

javascript - 使用字符串访问 json

javascript - 分配和解包到一个数组到另一个数组之间的区别

c# - 如何在 View 中设置通用模型?