我曾经认为所有人都使用相对路径(例如/styles/style.css
)。但我想知道为什么一些流行的网络设计师(例如http://www.getfinch.com和http://31three.com/)使用绝对路径(http://example.com/styles/style.css
)。
因此,我的问题基本上是:为什么一些专业设计师使用绝对路径而不是相对路径?
我曾经认为所有人都使用相对路径(例如/styles/style.css
)。但我想知道为什么一些流行的网络设计师(例如http://www.getfinch.com和http://31three.com/)使用绝对路径(http://example.com/styles/style.css
)。
因此,我的问题基本上是:为什么一些专业设计师使用绝对路径而不是相对路径?
这两个都使用ExpressionEngine CMS,很可能是CMS链接样式表的方式不同。
但实际上这只是个人喜好问题。我个人更倾向于使用根相对路径/css/main.css
,因为这样如果我在本地离线开发时,就不必担心将WEB_ROOT常量切换到本地(减少麻烦且更简洁)。
我唯一看到绝对路径的情况是,如果域名使用CDN(内容分发网络),并且域名与源域名不同。
我认为这取决于个人偏好(最有可能)或可移植性。如果您的文件引用了完全限定的 URL,则在其他地方使用 html 时无需包含那些文件,它将继续从远程站点获取。
就我的经验而言,这更取决于平台,例如 .Net 使用 ~/
表示应用程序根目录,在 HTML 中呈现为 /path/file.css
,只是因为这是从代码端渲染的一条简单路径……一种选择最少阻力的方式。
另一个情况是,如果您正在从另一个域加载内容,例如此处的 sstatic.net
,您实际上没有选择,它必须是完全限定的。
我认为这只是个人偏好的问题。我更喜欢使用相对URL,因为如果你要更改(子)域名,那么更改起来就不会那么麻烦。但是,如果你有一个CMS或博客,它通常会自动处理这个问题(例如:{SITE_URL}/path/to/page
)。
这取决于您正在构建的应用程序,例如。如果您的应用程序使用像示例中一样的MVC框架,则必须使用绝对路径,因为它们调用的CSS不属于每个页面的相对路径。
使用MVC框架并不意味着必须使用绝对路径,而是也可以使用相对路径。这只是我的个人偏好。
除了明显的可移植性问题外,如果内容在同一域上,绝对路径并不是一个好主意,因为它可能会导致某些浏览器中进行额外的DNS查找。尽可能将域相对于您的站点根保持相对位置,这可以帮助提高性能,除非您有CDN或单独的域集来托管静态内容。
希望这可以帮到你!