代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

ASP.NET-MVC中关于链接和URL的最佳实践是什么

  •  1
  • leora Matt Lacey  · 技术社区  · 15 年前

    在不同的站点上,我看到了相互冲突的约定。

    如果您想要链接到图像、其他页面、JS文件,我看到了:

    URL.Content("~/scripts/myscript.js");
    <a href="/scripts/msscripts.js">
    <img src="../../images/test.jpg" />
    <img src="../images/test.jpg" />
    <img src="/images/test.jpg" />
    <img src="~/images/test.jpg" />
    

    这些似乎都在ASP.NET MVC中工作,但似乎都在做一些略有不同的事情。

    我要搬到一个新的Web服务器,在那里他们从IIS重定向到ISAPI重写,我被告知要确保我的链接以正确的方式完成或网站不工作。

    有人能解释一下“正确”的方法是什么吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Palantir    15 年前

    使用第一个选项。这样,您就可以将应用程序重新定位到域的任何子目录或顶级。

    第二个选项很好,如果您确定应用程序永远不会从子目录运行(即,它始终位于服务器的根目录)。

    第三个和第四个是坏的,因为它们指的是您的URL结构,在MVC环境中这是毫无意义的:在路径中添加一个新的位(例如,多加一个参数)或重构路径,而没有任何效果。

        2
  •  0
  •   Anemoia    15 年前

    最好的方法是使用 Url.Content ,确保里面有~。

    URL内容 然后将用正确的路径(网站的根目录)替换~

    仅在CSS文件中使用相对路径。

    如果您的CSS位于

    /CSS/样式

    和/images/background.png中的背景图像

    然后在style.css中使用:

    #divTest
    {
       background-image = url("../images/background.png")
    }
    

    因为你的网站整体上被移动,这将继续工作。