我使用的是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"));这是非常标准的。当我在Development区域中部署我的应用程序时,问题就出现了。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上做一些设置来捕获引用?
发布于 2013-08-15 04:25:17
你可以尝试创建一个像@html.getMyPath()这样的帮助器,并在你的web配置中使用differents configuration for environments (开发,UAT生产)创建一个密钥。密钥应该包含类似key="pathToFolder“value="/”或"~/“之类的内容,然后在应用启动时将该配置加载到缓存中。
帮助器将读取参数并找到文件路径的解析。
其他解决方案可能是,对于每个环境,您可以设置不同的“根位置”,并使用server.mappath为每个环境确定文件的物理位置。此实现也应该在html helper中。
我希望这对你有帮助
https://stackoverflow.com/questions/18236821
复制相似问题