我试图通过在折叠代码上方包含内联 css 来加快页面加载速度。这适用于根目录中的页面,但我在加载子文件夹中页面末尾的其余 CSS 文件时遇到问题(即http://example.com/other/index.html) .
如果当前文件位于根文件夹中,则以下代码可以正常工作:
<script>var cb = function() {
var l = document.createElement('link'); l.rel = 'stylesheet';
l.href = 'css/a1tg2.css';
var h = document.getElementsByTagName('head')[0]; h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);</script>
但如果当前文件位于子文件夹中,则以下代码不起作用:
<script>var cb = function() {
var l = document.createElement('link'); l.rel = 'stylesheet';
l.href = '../css/a1tg2.css';
var h = document.getElementsByTagName('head')[0]; h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);</script>
另外,如果我尝试绝对路径,它也不起作用:
<script>var cb = function() {
var l = document.createElement('link'); l.rel = 'stylesheet';
l.href = 'http://example.com/css/a1tg2.css';
var h = document.getElementsByTagName('head')[0]; h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);</script>
文件的相对位置是正确的,因为如果我在文档的头部有以下行:
<link href="../css/a1tg2.css" rel="stylesheet" type="text/css">
它也可以正常工作,但我不想使用它,因为它会减慢页面的渲染速度。我不精通 JavaScript,只是从在线关键路径 CSS 生成器中获取所需的代码。任何人都可以提供一个解决方案,因为这个网站上的类似问题都没有一个令人满意的答案。