代码之家  ›  专栏  ›  技术社区  ›  Antony Scott

对于带有网站的web应用程序,ASP.NET MVC图像/CSS不显示

  •  3
  • Antony Scott  · 技术社区  · 14 年前

    WebSite
        * Prod
        * Test1
        * Test2
    

    我已将防火墙路由配置为从 http://test1.mywebsite.com/xxx http://my.actual.website/Test1

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

    我能做些什么来解决这个问题吗?可能使用iisurl重写器模块,或者在防火墙中添加更多规则。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Robin Minto    14 年前

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

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

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

        2
  •  2
  •   Carlos Aguilar Mares    14 年前

    我将首先启用失败的请求跟踪( http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/ )在服务器中查看是否收到请求以及原因。我猜它得到了错误的解决,所以您可以使用URL Rewrite来修复路径,或者使用URL Rewrite 2.0的输出重写功能来修复链接。

        3
  •  0
  •   Simon Hughes    14 年前

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