1 回答

TA貢獻1851條經驗 獲得超3個贊
您可能正在尋找的是內聯 CSS,以便瀏覽器更快地應用它們,而無需首先將 CSS 資源作為單獨的請求獲取。
有一個關于官方支持的問題,但還沒有答案:https://github.com/vercel/next-plugins/issues/364
但是,有一個解決方法,可以在https://github.com/vercel/next-plugins/issues/238中找到,我試過了并且有效。
要實現內聯CSS,_document.js
在pages
文件夾中添加一個名為的文件,內容如下:
import Document, { Head, Main, NextScript } from 'next/document';
import fs from 'fs';
import path from 'path';
class CustomNextHead extends Head {
// TODO: This might not be needed if Next.js implements built-in support
// https://github.com/zeit/next-plugins/issues/364
getCssLinks({ allFiles }) {
return allFiles
.filter((file) => file.endsWith('.css'))
.map((file) => (
<style
key={file}
nonce={this.props.nonce}
dangerouslySetInnerHTML={{
__html: fs.readFileSync(path.join('.next', file), 'utf-8'),
}}
/>
));
}
}
export default class MyDocument extends Document {
render() {
return (
<html>
<CustomNextHead />
<body>
<Main />
<NextScript />
</body>
</html>
);
}
}
添加回答
舉報