在我的布局页面中,我有:
<link href="~/Content/bootstrap.css" rel="stylesheet">
我的理解是,当它被发送到客户端时不应该改变它。但是,当我将网站设置为IIS中“myapp”文件夹下的虚拟应用程序时,HTML为:
<link href="/myapp/Content/bootstrap.css" rel="stylesheet">
我有点困惑,因为我以为我需要将这些网址更改为:
<link href="@Url.Content("~/Content/bootstrap.css")" rel="stylesheet">
为了使其正常工作。
那么我是否需要使用URL.Content来获取应用程序/网站的正确根URL,或者我可以将tildes放入实际的HTML src + href元素中,并假设它将由IIS正确输出? / p>
答案 0 :(得分:3)
从ASP.NET MVC第4版(或实际上是Razor第2版)开始,代字号链接本质上是Url.Content(..)
的快捷方式。
答案 1 :(得分:-2)
你实际回答了自己的问题。是的,您应该使用Url.Content()作为相对路径。在相对路径前面的简单波浪号仅在客户端的浏览器中解析,该浏览器将http://www.foo.com/下的所有URL视为单个域,因此将尝试在http://www.foo.com/而不是{{3}查找资源}}