CSS 使用 NextJS 生产版本加载页面时出现过渡闪烁
CSS Transition flash on page load with NextJS production build
在我的 NextJS 应用程序的生产构建 (npm run build && npm run start
) 中,我注意到元素在页面加载时触发 css 转换(链接闪烁蓝色,svg 闪烁颜色)。
仅在 Chrome 中发现,Firefox 和 Safari 没有此问题。
找到答案in this Whosebug question. Appearantly it is due to a chrome bug (https://crbug.com/332189 and https://crbug.com/167083).
修复是在正文末尾放置一个带有 space 的脚本标记。在 NextJS 中,您可以通过添加 pages/_document.js
文件 (more info).
来完成此操作
我的现在看起来像这样:
import Document, { Html, Head, Main, NextScript } from 'next/document';
export default class MyDocument extends Document {
render () {
return (
<Html lang="en">
<Head>
<meta charSet="utf-8" />
<meta name="viewport" content="initial-scale=1.0, width=device-width"/>
</Head>
<body>
<Main />
<NextScript />
{/* Empty script tag as chrome bug fix, see */}
<script> </script>
</body>
</Html>
)
}
}
编辑:此错误可能 fixed 自 2021 年 6 月 1 日起在 Chrome Canary v93.0.4529.0 7.5 年后出现!
在我的 NextJS 应用程序的生产构建 (npm run build && npm run start
) 中,我注意到元素在页面加载时触发 css 转换(链接闪烁蓝色,svg 闪烁颜色)。
仅在 Chrome 中发现,Firefox 和 Safari 没有此问题。
找到答案in this Whosebug question. Appearantly it is due to a chrome bug (https://crbug.com/332189 and https://crbug.com/167083).
修复是在正文末尾放置一个带有 space 的脚本标记。在 NextJS 中,您可以通过添加 pages/_document.js
文件 (more info).
我的现在看起来像这样:
import Document, { Html, Head, Main, NextScript } from 'next/document';
export default class MyDocument extends Document {
render () {
return (
<Html lang="en">
<Head>
<meta charSet="utf-8" />
<meta name="viewport" content="initial-scale=1.0, width=device-width"/>
</Head>
<body>
<Main />
<NextScript />
{/* Empty script tag as chrome bug fix, see */}
<script> </script>
</body>
</Html>
)
}
}
编辑:此错误可能 fixed 自 2021 年 6 月 1 日起在 Chrome Canary v93.0.4529.0 7.5 年后出现!