【发布时间】:2013-08-14 16:06:34
【问题描述】:
我正在使用 ASP.Net MVC,我的包看起来像:
bundles.Add(new Bundle("~/bundles/rgmpjsbundle").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/modernizr-*",
"~/Scripts/jquery.address-1.5.js",
"~/Scripts/tabmenu.js",
"~/Scripts/knockout-2.2.0.js",
"~/Scripts/knockout.mapping-latest.js",
"~/Scripts/jquery-ui-1.10.3.custom.js",
"~/Scripts/KnockoutCustomBindings.js",
"~/Scripts/knockout-sortable*",
"~/Scripts/moment.js"));
这是相当标准的。当我在开发区域部署我的应用程序时,问题就来了。 IIS 的设置如下(我知道这不太好):
DEVWEBSITE
-> app 1
-> app 2
-> app 3
UATWEBSITE
-> app 1
-> app 2
-> app 3
但是;生产设置不同,因为每个应用程序都有自己的网站。事实证明,这对我来说是一个正确的痛苦,因为在 DEV/UAT 结构下,我的应用程序将使用 ~ 一直跳回 DEV/UAT 网站(Shell 站点),但在 PROD 环境中它会回到Web 应用程序的根目录。我会使用相对引用,除非我使用 MVC URL 重写。
有没有人能解决这个问题?也许 IIS7 上的一些设置可以捕获 ~ 引用?
【问题讨论】:
-
老实说,您的问题是,您的 UAT 环境似乎与您的生产元素不匹配。
-
告诉我这件事,但我无法改变 :-(
-
您可能会发现最好的解决方案可能是将文档根目录存储在 machine.config 中,并使用它而不是 ~/。
标签: asp.net-mvc asp.net-mvc-3 iis-7