2010-07-01 60 views
3

我的网站中有许多Web应用程序在IIS 7.5中,我的MVC2 Web应用程序将在其中生活。ASP.NET MVC图像/ CSS未显示Web站点的Web应用程序

WebSite 
    * Prod 
    * Test1 
    * Test2 

我有防火墙路由配置为重定向从http://test1.mywebsite.com/xxxhttp://my.actual.website/Test1

我用Url.Content("~/Content/Site.css")但CSS是没有得到加载。看看网页的源代码url正在呈现为<link href="/Test1/Content/Site.css" ...>

有什么我可以做的,以解决这个问题?可能使用IIS URL重写器模块,或将更多规则添加到我的防火墙。

回答

1

由于您在IIS网站(而不是路径中的单个应用程序)中具有应用程序(每个环境),因此在生成Url.Content中的URL时,ASP.NET MVC将这些考虑在内。

如果您想在您的网站中保留应用程序,您可以在防火墙级别(如果您的防火墙支持它),在IIS级别(URL重写)或通过实施Url.Content的替代方法重写URL。由于可用的源代码,您可以看到MVC框架是如何实现的,大部分工作都是在PathHelpers class中完成的。

当然,如果您还有其他工作来开发/测试/维护您的重写规则或您的替代URL生成代码。我的观点是将应用程序分开,以便每个IIS网站都有独立的应用程序/环境,这样您就不会承担额外的负担。

0

听起来像防火墙也需要配置为重定向CSS和图像请求。