虽然您可以在路径前加上“/”以映射到域根目录,但在 ASP.NET 中,域根目录并不总是等于应用程序根目录。如果您的开发环境的结构与您的生产环境不匹配,它还会使您的脚本变得脆弱。
改为:
var arrowImages = { down: ['downarrowclass', '<%= Page.ResolveClientUrl("~/images/AppNavDownArrow.gif") %>', 23], right: ['rightarrowclass', '<%= Page.ResolveClientUrl("~/images/AppNavRightArrow.gif") %>'] }
这将确保您的路径指向 IIS 中当前应用程序上下文的根目录,无论是域根目录还是虚拟目录。
如果您不想将脚本放在页面上并将其保存在 .js 文件中,请在您的 masterpage/layout/whatever 中创建一个指向您的应用程序根目录的变量,然后在您的脚本文件:
<script type="text/javascript">
var configuration = {
applicationRoot: '<%= Page.ResolveClientUrl("~/") %>',
currentPath: '<%= HttpContext.Current.Request.Path %>'
}
</script>
在您的脚本文件中:
var arrowImages = { down: ['downarrowclass', configuration.applicationRoot +'/images/AppNavDownArrow.gif', 23], right: ['rightarrowclass', configuration.applicationRoot +'/images/AppNavRightArrow.gif'] }