asp.net-mvc中链接和URL的最佳实践是什么?

时间:2010-05-26 11:20:00

标签: asp.net-mvc hyperlink

查看不同的网站,我看到了相互矛盾的约定。

如果您想要链接到图像,其他页面,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中工作,但似乎所有的东西都有些不同。

我正在迁移到一个新的网络服务器,他们正在从IIS重定向到isapi重写,我被告知要确保我的链接以正确的方式完成或网站不能正常工作。

有人可以澄清“正确”的方式吗?

2 个答案:

答案 0 :(得分:2)

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

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

第三个和第四个是坏的,因为它们引用了你的URL结构,这在MVC环境中毫无意义:向路径添加一个新位(例如,再一个参数)或重构路径,什么都不会起作用。

答案 1 :(得分:0)

最好的方法是使用Url.Content,并确保你有〜。

然后

Url.Content将用正确的路径(您网站的根目录)替换〜。

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

如果你的css位于

/css/style.css

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

然后在你的style.css中使用:

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

由于您的网站整体移动,这将继续有效。