我从我的网络服务器上的子目录提供内容,例如:
http://www.myserver.com/subtree
我注意到CSS没有正确呈现,所以我看一下HTML文件的来源:
<link rel="stylesheet" type="text/css" href="static/stylesheets/style.css"/>
可以预期,Chrome或Firefox等浏览器会尝试在
中找到此csshttp://www.myserver.com/subtree/static/stylesheets/style.css
当鼠标悬停在链接上时,我可以看到它将我链接到
http://www.myserver.com/static/stylesheets/style.css
请注意,我正在使用apache的mod_proxy从本地计算机上运行的另一台服务器上的/ subtree中提供内容。但是,我的理由是浏览器不知道这个,看起来内容来自myserver.com/subtree,因此它应该使用相对路径查找资源。
我错过了什么?
答案 0 :(得分:1)
这是可以预料的。浏览器无法知道/ subtree是一个文件夹(相反,它也可能只是一个文件/文本/ html)。如果您希望浏览器在相对路径查找中包含此路径片段,请确保它以斜杠结尾,如:
http://www.myserver.com/subtree/
如果您使用的是Apache,可以使用mod_dir的DirectorySlash指令自动为您解决此问题:mod_dir documentation
答案 1 :(得分:1)
我希望这有帮助:
浏览器在看到以/
开头的网址时,会移除path
的{{1}}部分,或者获取document.location.href
的值,并将当前网址附加到结束了。
当他们看到不以“/”开头的网址时,他们会将当前网址追加到document.location.origin
的末尾。
答案 2 :(得分:1)
Sam Dufel对此问题的评论:
我注意到友好的网址, 浏览器通常会查看 不同的相对路径取决于 是否包含尾随 削减。即, http://www.myserver.com/subtree会 有一个相对根 http://www.myserver.com/,和 http://www.myserver.com/subtree/会 有一个相对根 http://www.myserver.com/subtree/
(这里你可以将这个问题标记为已回答)