我以前从未见过 实际使用过的<base>HTML标签.它的使用存在缺陷,这意味着我应该避免它吗?
事实上我从来没有注意到它在现代生产网站(或任何网站)上的使用让我对它持怀疑态度,尽管看起来它可能有用于简化我网站链接的有用应用程序.
使用基本标签几周后,我最终找到了使用基本标签的一些主要问题,这使得它比最初出现时更不可取.从本质上讲,变化href='#topic'和href=''基本标签下是非常有它们的默认行为不兼容,并可以从默认行为,这种变化很容易使第三方库的控制范围之外的非常不可靠的 以意想不到的方式,因为它们在逻辑上依赖于默认行为.通常,这些更改是微妙的,并且在处理大型代码库时会导致不那么明显的问题.我已经创建了一个回答,详细说明了我在下面遇到的问题.因此,在您进行广泛部署之前,请自行测试链接结果<base>,这是我的新建议!
在PHP中,我编写了一个接受URL,用户代理和其他设置的代理函数.然后该函数对网站发出curl请求,并将带有正确html内容类型标题的输出打印到iframe中(这是必要的,因为我需要更改一些标题).
代理输出通常有很多具有相对URL的资产,实际上是我站点的主机名,而不是代理站点:
示例:[http:// MYSITE .com/proxy?url = http://somesite.com]将返回[http:// somesite .com] 的html
在响应html中,有这样的东西:
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png">
Run Code Online (Sandbox Code Playgroud)
问题:
http://somesite.com/assets/ico/apple-touch-icon-144-precomposed.png它实际上试图找到http://MYSITE.com/assets/ico/apple-touch-icon-144-precomposed.png错误的资产,而不是寻找资产的资产.
问题:
我需要做些什么才能通过代理正确加载他们的相对路径资产?