【问题标题】:asp.net mvc url of anchor's start with "/" is wrong?以“/”开头的锚点的asp.net mvc url是错误的吗?
【发布时间】:2011-01-11 14:54:06
【问题描述】:

在我的 Asp.Net MVC web 项目中,我总是使用锚 url 作为

<a href="/xxxx"></a>

这使我的网址运行良好。输出如下

<a href="www.mydomain.com/xxxx"></a> 如果在主机中

<a href="localhost/xxxx"></a> 如果正在开发中

我正在使用搜索引擎优化工具包 (http://www.iis.net/download/seotoolkit) 来查找我的网页中的错误。

我在结果中看到的是“断开的超链接”。当我查看以“/xxx”开头的结果链接不像“domain.com/xxx”时,seo 工具包感觉 url 像“domain.com/currentpage/xxx”。

这里有什么问题?

我在编写以“/”开头的链接时做错了吗?错了吗?

【问题讨论】:

    标签: asp.net-mvc url seo


    【解决方案1】:

    我建议您使用 HTML 助手,而不是硬编码网址:

    <%= Html.ActionLink("link text", "someAction", "someController") %>
    

    无论您是在虚拟目录中的开发服务器还是生产服务器上运行,这都会生成正确的相对 URL,等等...

    【讨论】:

      【解决方案2】:

      我建议您将锚点标记为 runat="server" 并在您的 URL 中用 ~/ 更改 /。

      让 ASP.NET 将您的相对路径解析为绝对路径。

      "/" 用于指定您的路径从您网站的根目录开始。在大多数情况下这很好,但是如果您的应用程序嵌套在其他虚拟目录中会发生什么?在这种情况下,您的 URL 将无效。

      “~/”将您的路径解析为绝对路径,但是对于您的 Web 应用程序,即您已嵌套应用程序,这种“魔术”将呈现应用程序文件夹的完整路径。

      有帮助吗?

      【讨论】:

      • 您可以使用 url 助手 来获取绝对路径,而不是制作锚点 runat="server"。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多