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