next.js 生产环境中Nextjs客户服务目录

dddzy1tm  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(206)

问题在于:当我在生产服务器上运行next build时,页面在生成时未设置样式。我想做什么:
1.将应用程序构建到build目录
1.将build移动到build-public
1.从build-public提供应用程序。
我不想为这个简单的任务设置一个自定义服务器。
我的package.json章节:

"scripts": {
    "dev": "next dev -p 3002",
    "build": "next build",
    "start": "next start -p 3002"
  },

我的next.config.js

module.exports = {
  basePath: '',
  distDir: 'build', // dir to build
  dir: 'build-public', // serve from build-public. 'Dir' option is not working.
}
nnt7mjpx

nnt7mjpx1#

  • tl/dr:见第3段。*

1.replace next.config.js between build and serveNext.js在每次启动脚本时都使用distDir配置选项作为服务器目录。因此,如果我在构建应用时将distDir设置为build,那么我的包将位于build目录中。接下来,我将distDir更改为build-public, and run next start , so my project is served from build-public`。

下一个配置文件js

module.exports = {
...
  distDir: 'build' // build to 'build' directory. Then change distDir to 'build-public', so it will serve from 'build-public'.
...
}

1.从嵌套目录提供服务我可以运行next serve ./build-public,Nextjs将搜索./build-public/build中的应用构建。因此,在next build之后,我需要将build文件夹移动到build-public/build并运行next serve ./build-public

软件包.json

...
"scripts": {
    "build": "next build",
    "start": "next start ./nested-dir -p 3011"
  },
...

1.导出next.config.js中的函数。请在此处查看更高级的示例:nextjs-examples

下一个配置文件js

const {
  PHASE_PRODUCTION_BUILD,
  PHASE_PRODUCTION_SERVER,
} = require("next/constants");

module.exports = (phase) => {
  let distDir = "";
  if (phase == PHASE_PRODUCTION_BUILD) {
    distDir = "build";
  } else if (phase == PHASE_PRODUCTION_SERVER) {
    distDir = "build-public";
  }

  return {
    ... 
    distDir,
    ....
  }
}
a8jjtwal

a8jjtwal2#

您可以在next.config.js中使用环境变量,并在运行build命令之前设置该环境变量:
第一个

相关问题