查看不同的网站,我看到了相互矛盾的约定。
如果您想要链接到图像,其他页面,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重写,我被告知要确保我的链接以正确的方式完成或网站不能正常工作。
有人可以澄清“正确”的方式吗?
答案 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")
}
由于您的网站整体移动,这将继续有效。