我继承了一个网站,其中前一位开发人员编写了相对于网站根目录的所有链接,每个链接都有一个反斜杠:
<link href="/css/file.css" />
<script src="/js/file.js"></script>
这适用于在服务器上托管网站时,因为链接将等同于:
http://www.example.com/css/file.css
http://www.example.com/js/file.js
但是,当我从子文件夹中调用本地测试时,我试图让这些链接正常工作。具体来说,我正在使用WAMP,并已将整个代码移至site
处名为http://localhost:8080/site/
的本地文件夹。
我无法使用localhost
的根,因为WAMP会在那里存储各种文件(包括会被覆盖的索引)。
显而易见的解决方案,就像StackOverflow上的许多帖子所示,只是简单地使用文件夹相关链接,例如:
<link href="css/file.css" />
<script src="js/file.js"></script>
但是,在各种不同的文件中,存在数百个硬编码的根相对链接,因此如果可能的话,必须避免改变它们中的每一个都是很好的。
为避免编辑每个链接,我们尝试设置HTML <base>
代码并直接指定文件夹:
<base href="http://localhost:8080/site/">
但是,这似乎不起作用。
<base>
与根相对链接不兼容吗?
有没有什么方法可以轻松地让所有文件引用http://localhost:8080/site/
,而无需手动编辑每个预先存在的根相对链接?或者我是否必须手动更新每个文件夹相对文件夹?
答案 0 :(得分:1)
<base>
与根相对链接不兼容吗?
不,但绝对路径仍然是绝对路径。它将通过删除http://localhost:8080/site/
来解析相对于/site/
。
如果您想使用绝对路径而不是将您的开发网站保留在子目录中,那么configure your HTTP server to use Virtual Name Hosting。
添加自定义主机名(在您的LAN的DNS服务器或开发系统的hosts
文件中),例如site.localhost
,并在虚拟主机中设置DocumentRoot
。
答案 1 :(得分:0)
您是否尝试过在IDE中使用替换功能?您只需将所有="/
替换为="
。这样可以节省您很多工作和压力。