NextJS产品CSS构建
我有针对不同版面的自定义CSS文件,在开发模式下没有问题,但当我在生产模式下发布我的应用程序时,Nextjs会将所有CSS组合在一起,给我的版面带来问题。通常,在NextJS产品CSS构建,css,reactjs,webpack,next.js,Css,Reactjs,Webpack,Next.js,我有针对不同版面的自定义CSS文件,在开发模式下没有问题,但当我在生产模式下发布我的应用程序时,Nextjs会将所有CSS组合在一起,给我的版面带来问题。通常,在build之后,我们将所有CSS和JS块推送到static文件夹中,这样当服务器请求请求下一个JS页面时,就可以从static文件夹(取决于请求)提供它 Server.js: const staticDir = path.resolve(__dirname, "..", ".next/static"
build
之后,我们将所有CSS
和JS
块推送到static
文件夹中,这样当服务器请求请求下一个JS页面时,就可以从static
文件夹(取决于请求)提供它
Server.js:
const staticDir = path.resolve(__dirname, "..", ".next/static");
server.use(compression());
server.use("/_next/static", express.static(staticDir));
server.get("/_next/*", (req, res) => {
/* serving _next static content using next.js handler */
handle(req, res);
});
server.get("/static/*", (req, res) => {
/* serving _next static content using next.js handler */
handle(req, res);
});
在您的\u document.js
文件中添加以下行,并请共享您在next.config.js
中添加的配置
\u document.js
//呈现应用程序和页面,并获取包含收集的副作用的页面上下文
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: App => props => sheets.collect(<App {...props} />)
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
// Styles fragment is rendered after the app and page rendering finish.
styles: [
...React.Children.toArray(initialProps.styles),
sheets.getStyleElement()
]
};
};
constsheets=newserverstylesheets();
const originalRenderPage=ctx.renderPage;
ctx.renderPage=()=>
原始渲染图({
enhanceApp:App=>props=>sheets.collect()
});
const initialProps=wait Document.getInitialProps(ctx);
返回{
…初始道具,
//样式片段在应用程序和页面呈现完成后呈现。
风格:[
…反应。儿童。toArray(缩写词。风格),
sheets.getStyleElement()
]
};
};
通常,在构建
之后,我们将所有CSS
和JS
块推送到一个静态
文件夹中,这样当服务器请求请求页面时,下一个JS将从该静态
文件夹中提供服务(取决于请求)
Server.js:
const staticDir = path.resolve(__dirname, "..", ".next/static");
server.use(compression());
server.use("/_next/static", express.static(staticDir));
server.get("/_next/*", (req, res) => {
/* serving _next static content using next.js handler */
handle(req, res);
});
server.get("/static/*", (req, res) => {
/* serving _next static content using next.js handler */
handle(req, res);
});
在您的\u document.js
文件中添加以下行,并请共享您在next.config.js
中添加的配置
\u document.js
//呈现应用程序和页面,并获取包含收集的副作用的页面上下文
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: App => props => sheets.collect(<App {...props} />)
});
const initialProps = await Document.getInitialProps(ctx);
return {
...initialProps,
// Styles fragment is rendered after the app and page rendering finish.
styles: [
...React.Children.toArray(initialProps.styles),
sheets.getStyleElement()
]
};
};
constsheets=newserverstylesheets();
const originalRenderPage=ctx.renderPage;
ctx.renderPage=()=>
原始渲染图({
enhanceApp:App=>props=>sheets.collect()
});
const initialProps=wait Document.getInitialProps(ctx);
返回{
…初始道具,
//样式片段在应用程序和页面呈现完成后呈现。
风格:[
…反应。儿童。toArray(缩写词。风格),
sheets.getStyleElement()
]
};
};