0

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

sometestingdemo.bla.com/mvcapp

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

bladibla.com

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

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

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

4

1 回答 1

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 帮助程序来生成正确的路径。

另一方面,如果您已将 url 硬编码到此 CSS 文件中,那么恐怕您在这里很受宠若惊。

于 2013-03-08T13:44:55.073 回答