【发布时间】:2012-07-26 16:16:49
【问题描述】:
**** 编辑:已解决Relative paths from file for img, a and header ****
对网页设计有点新意。
我刚刚创建了一个动态网站。它可以读取domain/category,domain/category/this-article-about-x,都重定向到domain/index.php并且运行良好。
但是,我很快了解到,每当我使用 ./include 等相对路径时,相对路径都会考虑当前 URL,而不是 php 文件所在的实际 url。
我有2个问题长时间浏览互联网时无法回答:
1) 如果 domain/index.php 试图显示带有 ./thumbnails/science/image.jpg 的图像,如果实际 url 是 domain/category/,它将无法工作,但如果它只是域/类别(末尾没有斜线)。为什么会出现这种不一致? HTML 代码显示图像的 src 在两种情况下都是相同的。
2) 我的标题有一个带有类别的下拉菜单。一旦提交,它将调用自己(header.php),查看用户选择的类别并重定向到域/类别。一切正常。然后,您可以将下拉菜单重新更改为另一个类别,然后再次加载所有内容。但是同样,如果您直接访问 domain/cateory/ (末尾带有斜杠),CSS 将不会加载,图像不会像问题 1 中所说的那样加载,并且提交表单会导致问题,因为它会在 domain/category/ 上查找 header.php,而不仅仅是在 header.php 文件实际所在的域上。
我已成功使用 dirname(FILE) 来确保我包含所有工作(就我的测试而言,没有错误)。但我无法使用 dirname(FILE) 生成链接或图像“img src=”,无论 URL 是什么,它们都将始终指向图像。
在本地主机上,HTML 以 img src=c:\path\htdocs\thumbnails\img 的形式出现,这是正确的,但无论如何图像都不会显示。与“a href”链接相同。尝试使用 dirname(FILE) 创建链接在 localhost 上创建为 c:\correctpath 的链接,但单击它们完全没有任何效果。此外,使用带有 dirname(FILE) 的标头来处理来自下拉菜单的重定向导致它也停止工作(但如果我使用 ./ . dropDownMenuValue,它会再次正确地将 url 更改为域/categoryChosen)
如何对相对 url 使用一致的方法,允许我在 localhost 上工作,然后上传到我的 web 主机,而无需更改文件,并且适用于通过 htaccess 具有漂亮名称 url 的动态网站?
谢谢,
这对我来说非常令人费解,如何从当前文件路径获取相对路径如此困难并产生如此多不同的问题,以及为什么仅包含语句似乎与 dirname(FILE)
我在其他网站上找到了这个,但是每次你想从本地主机转到网络时,它都需要你更改基础。我试图避免这种情况。显然,必须有一种简单的方法来做如此基本的事情。我不敢相信谷歌和其他所有人在准备好让某些东西上线时都在改变路径。
【问题讨论】:
-
你在标题中找到了一个关键词。您应该在 SO 上搜索绝对 URL 和相对 URL。
-
我做了,但我发现的每个链接都说使用 ./ 中的相对 url,这不适用于具有漂亮 url 的动态网站。我正在寻找解决方案,特别是在处理 IMG、A HREF 和 Header 时使用基于 htaccess 的漂亮 url 的相对路径。
-
对于动态网站,您应该将
css、js、images等的所有文件夹放在Web根目录中,这样您就可以使用@等绝对URL访问所有内容987654326@、/js、/images等 -
phpmycoder 不起作用,这是我的观点。如果您通过 root/categories/ 访问该站点,一个简单的 将中断(但如果您不添加斜杠最后,我也很想得到答案)
-
css文件夹的绝对路径是什么?
标签: html dynamic friendly-url