MVC中的所有内置框架方法(如<h1>Check browser console for errors</h1>
或Url.Action
)仅在生成的html中生成相对URL。很多SO答案提供了获得绝对路径的方法。 For example:
Url.Content
适合我。
我的问题是,有没有理由不使用绝对路径?在使网站对网络报废,可访问性工具,RSS提要等更加开放方面,它是完全更好的。是否存在缺点?似乎绝对路径应该是默认路径,相对路径应该是自定义实现。
答案 0 :(得分:3)
在动态生成页面内容的Web应用程序的上下文中,URL相对可能不那么重要。传统上,使用静态HTML,硬编码绝对路径是一个非常糟糕的主意。如果您需要移动网站,则需要查找绝对URL的每个实例并进行更改。
但是,仅使用路由所需的尽可能多的URL仍然是最佳做法。虽然可能更罕见,但有些东西,如Google Cache,Archive.org等,使用绝对路径有效地破坏了在缓存中导航的所有能力。除此之外,尽管今天可能不太常见,但仍存在许多代理,用户缓存网页视图,然后将流量动态路由到缓存而不是实际网站。绝对URL也会破坏这一点。
最重要的是,它只是不必要的,虽然它确实是最小的,但它确实为页面增加了额外的重量。对于宽带用户来说,它毫无意义,但对于在国际连接上使用3G计量数据的人来说,每个字节都很重要。