Next.js中全局CSS在SSR时为什么样式错乱?
我在Next.js项目里引入了一个全局的CSS文件,本地开发看着没问题,但一部署到服务器做SSR渲染,页面样式就乱了,有些类名没生效,顺序也不对。
我试过把CSS放在pages/_app.js里用import '../styles/global.css'引入,也确认了只在_app里导入一次。是不是SSR环境下CSS加载顺序有问题?
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 16px;
}
.header {
background: #fff;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
首先确认你的全局CSS确实只在pages/_app.js里通过import引入一次。然后检查下其他组件里的CSS模块有没有和全局的类名冲突。
如果问题还在,可以考虑给全局样式加点权重。比如你提到的.container和.header,可以改成这样:
然后在对应的HTML元素上加上这些父级类名。这样做虽然有点麻烦,但能确保样式的优先级。
另外记得清除浏览器缓存再测试,有时候旧样式会干扰判断。我自己也经常被这种问题搞到头疼,慢慢来吧。