我在我的项目中使用了一些相对网址,例如<img src="../images/portal_header.jpg" .../>
,但我们的顾问坚持要求我将每个网址更改为~/images/...
,因为它们是html控件,我必须添加{{1} }每个标签,所以我的问题是,这是必要的吗?我有几个主页,它使所有的js链接和css链接未达到。感谢
答案 0 :(得分:1)
控件可以存在于任何子文件夹中,并被许多不同子文件夹中的许多不同页面引用。 ../
在每种情况下都不起作用。
因此,您需要解析网址:
ResolveUrl("~/images/myimage.jpg")
而且,不,你不必添加runat="server"
,你可以这样做:
<img src="<% =ResolveUrl("~/images/portal_header.jpg") %>" .../>
答案 1 :(得分:0)
这在很大程度上取决于背景。只要相关资源的位置不会发生变化,使用相对URL就可以正常工作。将所有图像标记转换为控件确实为您提供了使用“〜”(App Root)的好处,但它也增加了在服务器上处理的开销。
您的顾问可能会试图保护您免受常见问题的困扰。您的所有相关链接在开发中都可以正常工作(“http:// localhost / site”),但在您转到生产时会中断(“http://www.yourdomain.com/somelocation/”)。
答案 2 :(得分:0)
不确定您使用的是哪个ASP版本,但我使用@Url.Content("~/relativepath")
使用MVC3 w / Razor的ASP4
或<img src="@Url.Content("~/relativepath")" alt="" />