我在我的项目中使用了一些相对 url <img src="../images/portal_header.jpg" .../>
,但我们的顾问坚持要求我将每个 url 更改为~/images/...
,并且因为它们是 html 控件,我必须runat="server"
为每个添加标签,所以我的问题是有必要吗?我有几个母版页,它使所有 js 链接和 css 链接都无法访问。谢谢
问问题
68 次
3 回答
1
控件可以存在于任何子文件夹中,并被许多不同子文件夹中的许多不同页面引用。 ../
并非在所有情况下都有效。
因此,您应该解析 URL:
ResolveUrl("~/images/myimage.jpg")
而且,不,您不必添加runat="server"
,您可以这样做:
<img src="<% =ResolveUrl("~/images/portal_header.jpg") %>" .../>
于 2012-06-27T18:40:01.630 回答
0
这很大程度上取决于上下文。只要依赖资源的位置不会发生变化,使用相对 URL 就可以正常工作。将所有图像标签转换为控件确实为您提供了使用“~”(App Root)的好处,但它也增加了服务器处理的开销。
您的顾问可能会试图保护您免受常见问题的影响。您的所有相关链接在开发中都可以正常工作(“http://localhost/site”),但在您进入生产环境时会中断(“http://www.yourdomain.com/somelocation/”)。
于 2012-06-27T18:40:56.850 回答
0
不确定您使用的是哪个 ASP 版本,但我使用@Url.Content("~/relativepath")
MVC3 w/Razor 用于 ASP4
或者<img src="@Url.Content("~/relativepath")" alt="" />
于 2012-06-27T18:42:41.540 回答