IIS7重定向〜/文件位置

时间:2013-08-14 16:06:34

标签: asp.net-mvc asp.net-mvc-3 iis-7

我正在使用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上有一些设置来捕获〜引用?

1 个答案:

答案 0 :(得分:0)

你可以尝试使用differents configuration for environments(dev,UAT Production)创建一个像@ html.getMyPath()和web配置中的密钥的密钥,密钥应该包含类似key =“pathToFolder”value =“ /“或”〜/“然后在应用程序启动的缓存中加载该配置。

帮助程序将读取参数并找到文件路径的分辨率。

其他解决方案可能是,对于每个环境,您可以设置不同的“根位置”,并使用server.mappath来确定每个环境的文件的物理位置,此实现也应该在html帮助程序中。

我希望有帮助