【问题标题】:iis 7 redirect (?) issueiis 7 重定向 (?) 问题
【发布时间】:2013-03-08 13:34:57
【问题描述】:

我有一个在这里运行的 mvc 应用程序:

sometestingdemo.bla.com/mvcapp

在我们的测试服务器上。它通常在生产服务器的“顶级域级别”运行,如下所示:

bladibla.com

mvc 生成的 html 包含如下代码:

<link href="/content/css/global/somecoolstyles.css" rel="stylesheet" type="text/css" />

这显然适用于生产服务器,但不适用于测试服务器。我有什么方法可以解决这个问题(最好不要更改 mvc 代码 - 如果可能的话)?

【问题讨论】:

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


    【解决方案1】:

    Url.Content() 帮助器生成应用程序在 IIS 中托管的虚拟目录的根目录的相对路径。因此,如果在您的测试环境中,您将应用程序托管在 mvcapp 虚拟目录上,该目录仍会产生正确的输出。

    您正在使用 url 帮助程序,而不是将位置硬编码到此 CSS,不是吗?下面是链接 CSS 文件的正确方法:

    <link href="@Url.Content("~/content/css/global/somecoolstyles.css")" rel="stylesheet" type="text/css" />
    

    当然,如果您使用的是 ASP.NET MVC 4(依赖于 Razor v2.0),您也可以将其简化为:

    <link href="~/content/css/global/somecoolstyles.css" rel="stylesheet" type="text/css" />
    

    这将隐式使用 url helper 来生成正确的路径。

    另一方面,如果您已将 URL 硬编码到此 CSS 文件中,那么恐怕您在这里已经很高兴了。

    【讨论】:

    • 我正在使用 Url.Content。不确定该文件夹是否为虚拟目录。它是我创建应用程序文件夹的默认网站下的一个文件夹。
    • 不,您应该将此mvcapp 文件夹设为虚拟目录。
    • 抱歉,我的 iis 技能有限。你有一个“食谱”的链接吗?特别是对于我的“子域/文件夹”情况。正如我所说,生产服务器没有问题,但在测试服务器上。东西是共享的...
    • 你在 IIS 中有一个网站,对吧?这已经是一个虚拟目录。该网站映射到物理文件夹,例如c:\inetpub。现在让我们假设您要将应用程序部署在c:\inetpub\mvcapp 文件夹中。在 IIS 管理控制台中,您右键单击该网站并选择创建一个虚拟目录。您为此虚拟目录命名(在您的情况下为mvcapp),将其映射到c:\inetpub\mvcapp 物理文件夹,然后在此文件夹中部署您的MVC 应用程序。
    • 谢谢。我想这就是我所做的。你必须让它成为一个应用程序吗?
    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 2012-12-21
    • 2010-10-24
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    相关资源
    最近更新 更多