Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net-mvc中链接和url的最佳实践是什么_Asp.net Mvc_Hyperlink - Fatal编程技术网

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

asp.net-mvc中链接和url的最佳实践是什么,asp.net-mvc,hyperlink,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" /> <

看看不同的网站,我看到了相互冲突的约定

如果您想拥有指向图像、其他页面、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" />
URL.Content(“~/scripts/myscript.js”);
这些似乎都在asp.NETMVC中工作,但似乎都在做稍微不同的事情

我正在迁移到一个新的Web服务器,在那里,他们正在从IIS重定向更改为isapi重写,并且我被告知要确保我的链接以正确的方式完成,否则网站将无法工作


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

最好的方法是使用
Url.Content
,并确保其中包含~

Url.Content
然后将~替换为正确的路径(网站的根目录)

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

如果您的css位于

/css/style.css

以及/images/background.png中的背景图像

然后在style.css中使用:

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

由于您的网站作为一个整体移动,这将继续工作。

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

如果您确信应用程序永远不会从子目录运行(即,它将始终位于服务器的根目录),那么第二个选项就可以了


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

如果我在css文件中有这个,该怎么办。我显然不能使用URL.Content