【发布时间】:2011-07-24 09:27:01
【问题描述】:
我之前在网上浏览过这个问题,我怀疑答案是“你不能”,但由于我还没有找到一个确定的答案,所以我认为值得在这里提问。我发现最接近这个问题的是The mystery of the trailing slash and the relative url(目前已关闭,但谷歌有a text-only cached version)。
由于传统的设计,带有斜杠的 URL 被解释为目录,而没有斜杠的 URL 被解释为文件资源,而相对 URL 在目录之外工作,那么如果当前页面的路径为
/lorem/ipsum/dolor
相对路径
not-dolor
将解析为
/lorem/ipsum/not-dolor
这自然是有道理的,当/lorem/ipsum/dolor 被视为文件资源dolor 时,位于目录/lorem/ipsum/ 中;典型的、直观的约定。然而,由于现在有大量网站是动态应用程序,每个 URL 都没有文件系统映射,这可能会让人头疼,因为有时你真的想相对于路径工作,就好像在当前设计中,有一个尾部斜杠。
是否有任何合理的方式(“不涉及服务器端处理/变量/其他,或 JavaScript”)使用基于当前路径的相对路径,不是的“目录”当前路径?这样not-dolor 可以相对于/lorem/ipsum/dolor 并产生
/lorem/ipsum/dolor/not-dolor
据我所知,没有涉及./not-dolor 之类的解决方法,因为. 仍然是(/lorem/)ipsum/。缺少重定向到尾部斜杠并确保所有资源都有对应于目录和文件性质的 URL,或者修改规范(!),有没有办法解决这个问题?
【问题讨论】:
-
This answer 看起来像是一种解决方法
标签: html url relative-path