1

在我的布局页面中,我有:

<link href="~/Content/bootstrap.css" rel="stylesheet">

我的理解是,这在发送给客户时不应更改。但是,当我将网站设置为 IIS 中“myapp”文件夹下的虚拟应用程序时,HTML 为:

<link href="/myapp/Content/bootstrap.css" rel="stylesheet">

我有点困惑,因为我以为我需要将这些 URL 更改为:

<link href="@Url.Content("~/Content/bootstrap.css")" rel="stylesheet">

为了使它正常工作。

那么我是否需要使用 URL.Content 来获取应用程序/网站的正确根 URL,或者我可以将波浪线放入实际的 HTML src + href 元素中,并假设它会被 IIS 正确输出?

4

2 回答 2

3

从 ASP.NET MVC 版本 4(或实际上是 Razor 版本 2)开始,波浪号链接本质上是Url.Content(..).

于 2013-09-16T07:51:02.430 回答
-2

你实际上回答了你自己的问题。是的,您应该使用 Url.Content() 作为相对路径。相对路径前面的简单波浪号仅在客户端浏览器中解析,它将http://www.foo.com/下的所有 URL视为单个域,因此将尝试在http://www查找资源.foo.com/而不是http://www.foo.com/myapp/

于 2013-09-16T07:52:36.987 回答