Next.js 中如何上传静态资源文件并部署到云服务器?

前言

Next.js 是一种基于 React 的轻量级框架,旨在使 React 开发更加简单且具有更好的性能。它具有热模块替换、自动代码分割、服务器端渲染等功能,在构建静态网站和动态网站方面都有很大优势。当我们在部署 Next.js 应用时,通常需要将静态资源文件上传到云服务器。本文将着重介绍这一过程。

上传静态资源文件

上传静态资源特别重要,因为它们通常是站点根目录下的文件,例如图像、CSS 和 JavaScript。通过构建 Next.js 应用,我们可以添加 next.config.js 文件,并使用 publicRuntimeConfig 配置选项来快速配置应用程序。例如:

-------------- - -
  -------------------- -
    -- ----
  --
-

在 Next.js 中,一些静态文件会自动被导出到 out/ 目录,例如 robots.txtsitemap.xmlfavicon.ico。如果你要上传非此类文件,可以将它们放在 public/ 目录中,然后使用 getNextExportPaths 命令将它们一并导出。例如:

----- ---- - ----------------

----- -------- - --------
----- ---------- - ---------
----- --------- - ------
----- ----- - --------------------------------------------- -- ------------------------------------
----- ----------- - ------------------------------------------------------------------------------- -- ------------------------------------

-------------- - -
  ----- --------------- -
    ----- ----- - ---

    -------------------- -- -
      ------------------------------- ------ - -
        -----
      --
    ---

    -------------------------- -- -
      ----------------- - -
        ----- ----------
      --
    ---

    ------ ------
  --
  ------------ -----------------------------------
  --------- --------------------------------
  ---------------- ----- -- -- ----------
--

这里使用了 glob,一个递归遍历文件目录的 node.js 包。pages 的表达式会匹配所有 *.jsx*.js 文件,staticPages 的表达式会匹配指定文件类型。将 pagesstaticPages 转化成正确的路径,最后导出到 out/ 目录。

部署到云服务器

在上传静态资源后,我们需要将应用部署到云服务器上,并提供给公众。下面是如何将 Next.js 应用程序部署到亚马逊 Elastic Beanstalk。

  1. 构建应用程序或在本地运行部署命令

在本地的终端或 CLI 中运行 npm run build 命令来构建应用程序。一旦构建完成,运行 eb create 命令来创建一个新的 Elastic Beanstalk 环境。

  1. 配置运行脚本

package.json 中添加 start 脚本。例如:

---------- -
  -------- ----- ----- -- ------
-
  1. 配置 Nginx

要使 Nginx 成功地配置到 Elastic Beanstalk 上,我们需要在 .ebextensions 文件夹中创建一个 nginx-proxy.config 文件,并添加以下代码:

------
  --------------------------------
    ----- --------
    ------ ----
    ------ ----
    -------- -
      -------- ---------- -
        ------ ---------------
        --------- ----
      -

      ------ -
        ------ ---

        -------- - -
          ---------- ------------------
          ---------------- ---- ------
          ---------------- --------- -------------
          ---------------- ----------------- --------
          ---------------- --------------- ---------------------------
        -
      -

这段代码确定了服务器的反向代理配置,将 80 端口转发到本地的 3000 端口,确保应用程序可以正常工作。

  1. 部署应用程序

使用 Elastic Beanstalk 控制台或 CLI 将应用部署到服务器上,并访问应用程序地址确认是否部署成功。

结论

本文介绍了如何上传静态资源文件并将 Next.js 应用程序部署到云服务器。如果你正在构建 Next.js 应用程序,希望它们可以被更多人使用,那么本文应该提供了一些有益的指导。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672c1909ddd3a70eb6d4aea4