Asp.net 在虚拟目录中部署mvc3应用程序后的路径中找不到映像

Asp.net 在虚拟目录中部署mvc3应用程序后的路径中找不到映像,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,问:下图无法解析为从.js脚本引用的内容(在~/scripts中的js脚本和mvc3框中的所有其他.js脚本) 这可以在本地工作,但在作为虚拟目录远程部署到iis6.0服务器时不会工作 我试过: src: '~/content/themes/base/images/down.gif' 但这不会在本地或远程解决 如果我硬编码虚拟目录路径(virtualdirectoryname是实际的虚拟目录),以下内容将远程工作 您不能在javascript中使用~。 尝试: 你可以用几种不同的方法来处理这个

问:下图无法解析为从.js脚本引用的内容(在~/scripts中的js脚本和mvc3框中的所有其他.js脚本)

这可以在本地工作,但在作为虚拟目录远程部署到iis6.0服务器时不会工作

我试过:

src: '~/content/themes/base/images/down.gif'
但这不会在本地或远程解决

如果我硬编码虚拟目录路径(virtualdirectoryname是实际的虚拟目录),以下内容将远程工作


您不能在javascript中使用
~
。 尝试:


你可以用几种不同的方法来处理这个问题。看起来您最好的选择是创建一个Javascript函数,为您提供基本URL,然后使用它来构建您的路径

以下是一个例子:

那么您的代码将如下所示:

src: getBaseURL() + '/content/themes/base/images/down.gif'

你的js文件在哪个文件夹中?您应该只使用相对路径引用它,这样它就可以在所有场景中工作。脚本与所有其他脚本一起使用:mvc3app\Scripts\ea.droplinemenu.js本地和远程指向web根目录的实际完整URL是什么?区别在哪里?直接浏览图像是否有效?允许消除权限问题。是的,图像在浏览器中按照路径/mvc3app/content/themes/base/images/down.gif进行解析。您提到的是虚拟目录。它是在IIS中作为应用程序设置的吗?是的,我将它设置为应用程序。对不起,我没有主意了。希望其他人能帮上忙。这是我的基本url,而不是。但我需要的是我的工作目录。映射到包含内容的工作目录的virtualdir。只需将其修改为拉回到第二个/then。
src: 'virtualdirectoryname/content/themes/base/images/down.gif'
../Content/themes/base/images/down.gif
function getBaseURL() {
    var url = location.href;  // entire url including querystring - also: window.location.href;
    var baseURL = url.substring(0, url.indexOf('/', 14));


    if (baseURL.indexOf('http://localhost') != -1) {
        // Base Url for localhost
        var url = location.href;  // window.location.href;
        var pathname = location.pathname;  // window.location.pathname;
        var index1 = url.indexOf(pathname);
        var index2 = url.indexOf("/", index1 + 1);
        var baseLocalUrl = url.substr(0, index2);

        return baseLocalUrl + "/";
    }
    else {
        // Root Url for domain name
        return baseURL + "/";
    }

}
src: getBaseURL() + '/content/themes/base/images/down.gif'