2011-03-01 50 views
1

基地网址我有一个问题,虽然我能找到的相关信息,我如果它正好是什么我想了解一下。HTML和CSS

事情是,我得到了一个网站上http://localhost/site
现在,当我创建链接时,比如说,<a href="/posts">,它链接到http://localhost/posts而不是http://localhost/site/posts
如果我删除斜杠(<a href="posts">),这将是最接近的,也许是最简单的解决方案。它工作正常,但我想知道为什么链接忽略该文件是在文件夹?

而且我也想知道这是否可以用.htaccess或其他东西修复。

我读过以/开头的链接,它是“绝对的”。因此,以/开头的链接仅用于直接链接到根目录,或者用于存储在根目录中的网站(在这种情况下,它没有多大意义)?

回答

0

领先 '/'该URL通知Web浏览器给出的路径是绝对(相对于Web服务器根目录),即如果您链接到/posts那么您知道生成的链接将是http://www.mysite.com/posts

如果你不提供领先的“/”(你不给一个完整的像http://www.mysite.com/posts URL),那么通常URL是相对,并给予任何页面将被relatvie当前正在查看的页面。

例如:

page being viewed    link url    target page 
------------------------------------------------------------------------------ 
www.mysite.com/site    link.html   www.mysite.com/site/link.html 
www.mysite.com/site    ../link.html   www.mysite.com/link.html 
www.mysite.com/some/other/page link.html   www.mysite.com/some/other/page/link.html 
www.mysite.com/some/other/page ../../../link.html www.mysite.com/link.html 

是否使用绝对或相对链接的决定完全取决于您 - 相对链接的好处是,如果你的网站的动作,在您的网站页面之间的链接依然会正常工作(例如,如果你的网站移动到www.mysite.com/otherpath,那么任何绝对链接等www.mysite.com/originalpath/home将不再起作用

你应该可以看到下面的网站相对URL的一个更完整的解释:

+0

我有一些JS代码中的所有网址的开头加上一个斜线,但我没有位于根文件夹中的网站。为了使URL正常工作,我必须将网站的基本网址添加到所有链接?没有其他办法了? (或使用标签,这是我要避免使用) – Parziphal 2011-03-01 16:57:46

+0

@renocor如果你正在构建在JavaScript中的链接,那么你可能要考虑从事物构造URL类似'window.location'财产。 – Justin 2011-03-02 00:55:22

0

站点根是localhost虽然你假设site是你的站点根目录。当你使用/它是相对于localhost的,因为它是绝对链接。

0

尝试做< A HREF = “../帖”>
./指基本目录,或家庭
../在开始意味着一级目录

+0

'。/'指_current_目录,而不是碱。 – 2011-03-01 03:01:33