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"

我有针对不同版面的自定义CSS文件,在开发模式下没有问题,但当我在生产模式下发布我的应用程序时,Nextjs会将所有CSS组合在一起,给我的版面带来问题。

通常,在
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()
]
};
};