2015-10-18 51 views
2

我想隐藏我的gitweb背后的实例逆向代理。因此,我将我的基本网址设置为/gitweb,但一些网址仍然被破坏。为什么这被解释为绝对网址?

在调试问题时,我发现下面的样式表从/gitweb.css而不是/gitweb/gitweb.css加载。

<base href="/gitweb" /> 
<link rel="stylesheet" type="text/css" href="gitweb.css"/> 

我发现a fix对于该问题的说,这些链接被解释为绝对URL。不幸的是我没有使用Apache--这是在修复中使用的。

无论如何。我只是想知道为什么href="gitweb.css"不使用base href

+1

尝试向路径末尾添加斜杠 - '' – Vucko

回答

3

他确实,但缺少的斜杠使浏览器认为“gitweb”是一个页面,只使用“/”。这与基地相同。

参见:https://stackoverflow.com/a/1889957/4516689

还是在规范的例子:http://www.w3.org/TR/html5/document-metadata#the-base-element

<!DOCTYPE html> 
<html> 
    <head> 
     <title>This is an example for the &lt;base&gt; element</title> 
     <base href="http://www.example.com/news/index.html"> 
    </head> 
    <body> 
     <p>Visit the <a href="archives.html">archives</a>.</p> 
    </body> 
</html> 

在上面的例子中的链接将 “http://www.example.com/news/archives.html” 的链接。

+0

Makese有意义且有效。看起来像'gitweb.cgi'中的一个bug。 – Brettetete