Asp.net 在虚拟目录中部署mvc3应用程序后的路径中找不到映像
问:下图无法解析为从.js脚本引用的内容(在~/scripts中的js脚本和mvc3框中的所有其他.js脚本) 这可以在本地工作,但在作为虚拟目录远程部署到iis6.0服务器时不会工作 我试过: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中使用~。 尝试: 你可以用几种不同的方法来处理这个
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'