为什么一些专业网页设计师使用绝对路径而不是相对路径(例如CSS、Javascript、图像等)?

为什么一些专业网页设计师使用绝对路径而不是相对路径(例如CSS、Javascript、图像等)?,javascript,css,path,Javascript,Css,Path,我曾经认为每个人都使用相对路径(例如/styles/style.css)。但我想知道为什么一些popuar web设计师(例如和)使用绝对路径(http://example.com/styles/style.css) 所以基本上我是在问为什么一些专业设计师使用绝对路径而不是相对路径?这两种都使用ExpressionEngine CMS,这可能是CMS链接样式表的方式 但实际上,这只是偏好的问题。就我个人而言,我使用root relative/css/main.css,因为这样,如果我在本地+脱机

我曾经认为每个人都使用相对路径(例如
/styles/style.css
)。但我想知道为什么一些popuar web设计师(例如和)使用绝对路径(
http://example.com/styles/style.css


所以基本上我是在问为什么一些专业设计师使用绝对路径而不是相对路径?

这两种都使用ExpressionEngine CMS,这可能是CMS链接样式表的方式

但实际上,这只是偏好的问题。就我个人而言,我使用root relative
/css/main.css
,因为这样,如果我在本地+脱机开发,我就不必担心将WEB_root常量切换到本地常量(更少麻烦+更短)


我所看到的绝对值的唯一情况是,如果域使用CDN(内容交付网络),并且域与源域不同。

我想说的是个人偏好(最有可能)或可移植性,如果您的文件引用的是完全限定的URL,则在其他地方使用html时不需要包含这些文件,它将继续从远程站点拉取

在我的经验中,它更多地依赖于平台,例如.Net对应用程序根使用
~/
,在HTML中呈现为
/path/file.css
,只是因为这是一个从代码端呈现的简单路径…阻力最小的路径


另一种情况是,如果您正在从另一个域加载内容,例如
sstatic.net
,您实际上没有选择,它必须是完全合格的。

这取决于您正在构建的应用程序。您的应用程序使用mvc框架,就像您的示例中一样,它们必须使用绝对路径,因为它们调用的css不属于每个页面中的相对路径

编辑
使用mvc框架并不意味着必须使用绝对路径,但也可以使用相对路径。这只是我的偏好。

我想这只是偏好的问题。我更喜欢相对URL,因为如果您正在更改(子)域,那么更改相对URL就不那么麻烦了。但如果你有一个CMS或博客,它通常会以任何方式为你处理(例如,
{SITE\u URL}/path/to/page
)。

谷歌网站管理员中心的好帖子。。。讨论谷歌爬行的视角和易迁移性


不确定这些特定的站点,但人们通常使用不同的URL作为静态资源文件,以提高效率(而不是个人偏好)。大多数浏览器在加载页面时对单个url的并发连接数都有限制,您可以通过从不同的url提供文件(需要绝对路径)来绕过该限制。这有助于加快页面加载速度,这是一种常见做法。

除了明显的可移植性问题外,如果内容位于同一个域上,绝对路径不是一个好主意,因为它可能会在某些浏览器中导致额外的DNS查找。尽可能保持域相对于站点的根目录,这有助于提高性能,除非您有一个CDN或一组单独的域来承载静态内容


希望这有帮助

此外,有时,如果代码是服务器端的,则可能存在打印完整URL的变量。如果我没记错的话,通常在WordPress主题中,这就是它们输出正确目录的方式

有些人甚至会说,从域的根开始的路径(例如,
/styles/style.css
)是绝对的(因此会有问题)

事情是这样的:绝对/完全限定方案和相对方案都解决了与移动对象时发生的情况相关的问题。但它们解决了不同的问题。使用完全相对方案,您可以将与文档相关的所有内容移动到服务器上的不同路径,而不会破坏任何内容。使用完全限定(和一些绝对方案),您可以移动任何单个文档,而不会破坏任何东西


我倾向于发现我在组中移动东西比迁移单个文档更频繁,所以我倾向于使用完全相对的方案。其他人可能有不同的需求。

我认为一些Apache重定向规则在相对路径方面存在问题。选择绝对路径可以确保.htaccess文件被命中。

我一直听说的原因是,当链接到同一域上的页面时,它用于SEO优化。我不确定这是否是在网络开发的黑暗时代保留下来的东西,或者这是否仍然是真的,但这是我一直得到的合理化


我解决这个问题的方法是在标题中使用base属性,这样我就可以从相对URL中获益。这样我就可以在我的开发服务器上进行测试,只需更改基本url或完全注释即可。尽管您的所有相对url都需要像从基本url集导航一样进行编写。

如果您的页面使用https协议调用,则任何相对路径css也将使用https协议调用。您真的需要加密/解密css内容吗D

但是,如果使用绝对路径引用外部css,则可以指定要使用的协议,通常是http而不是https。

相对路径
我认为两者都没有太大区别。脱机工作并上载网站时,使用相对路径更容易

此外,如果你曾经改变域名,但仍然想保留你的网站。您只需要更改您引用的绝对链接,相对链接将正常工作

绝对路径
浏览器在任何给定时间点只能从服务器下载2个文件。此外,虽然它下载JavaScript,但不下载任何其他内容。因此,为了规避这2个文件的限制,很多人使用子域。比如:——这是为了增加