0

我在我的项目中使用了一些相对 url <img src="../images/portal_header.jpg" .../>,但我们的顾问坚持要求我将每个 url 更改为~/images/...,并且因为它们是 html 控件,我必须runat="server"为每个添加标签,所以我的问题是有必要吗?我有几个母版页,它使所有 js 链接和 css 链接都无法访问。谢谢

4

3 回答 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 回答