我在主目录中有一个带有静态HTML页面的站点。这些HTML页面使用相对路径来引用图像,css和链接,即
<img src="images/myimg.gif">
和
<a href="contactUs.html">Contact Us</a>
我还有一个单片脚本,其URL为http://mysite.com/myScript
,它使用“额外路径信息”来选择功能......即http://mysite.com/myScript/products
显示产品列表。因此,在从脚本生成的HTML中,我需要引用图像,css和链接,如下所示:
<img src="../images/myimg.gif">
和
<a href="../contactUs.html">Contact Us</a>
问题是现在我想开始将常见的HTML移动到include
文件中(例如,常见的页眉和页脚),但是脚本和静态HTML以不同方式引用相关资源的事实使事情复杂化
我不想使用绝对路径,因为当她试图在DramWeaver的页面上工作时会弄乱我的同事的工作,这也会使网站不那么灵活。
解决此问题的最佳方法是什么?我的一个想法是在Apache中使用URL重写以允许http://mysite.com/products
的URL真正使用http://mysite.com/myScript/products
,但我没有URL重写的经验,所以我不知道这是多么容易。我的另一个想法是在HTML中使用META BASE
属性,但我不喜欢这样的事实,即我必须将其硬编码到每个HTML页面中,并且必须将完整的URL硬编码(例如http://mysite.com/
)到每一个。有什么建议吗?
答案 0 :(得分:0)
你不能在开头用斜线引用你的图像,所以链接到的所有文件都来自root,无论你在目录结构中有多深? E.g:
<img src="/images/myimg.gif" />
编辑:
您可以使用$_SERVER
获取路径,然后使用substr_count
计算路径中的斜杠数。根据您的需要添加尽可能多的../
个数字。这对你有用吗?