添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Nextjs打包还是非常方便的,就是网上资料不太全,导致踩了一些坑,下面是我亲自实践的两种打包方式。

一、node环境部署

这种方式最简单,也比较不容易出错,但部署时服务器需安装有node环境,速度没话说,杠杠的!

next build

构建好以后,打包好的文件默认放在/.next文件夹里

放到服务器上时仅需要如下几个部分文件即可:

next start
next start -p 80

启动前端服务即可。

二、静态导出

这种方法官网部署很详细,导致踩了不少坑,

运行命令:

next build && next export

默认的配置是会报错的,报错如下:

解决方法是在next.config.js文件里添加如下配置:

   images: {
        unoptimized: true

 将之前的/.next和out文件夹删除,重新执行上面命令就不会报错了,最后打包结果如下:

/out文件夹里

 此时,out文件夹放到nginx服务器里配置好代理路径为 "/"即可访问到,

但值得注意的是:

 可以看到使用了static模式导出后动态路由的api是被禁止掉的,所以使用静态导出时也需要考虑自己的代码是否有用到该API,若有则最好使用其他的方法或直接使用第一种打包方式。

补充:路由问题

最简单的方法

在next.config.js里添加上这个配置,很好用:

trailingSlash: true

最符合开发规范的方法

在Nginx服务器上配置如下:

以trailingSlash的默认值false导出后,nginx配置部署如下

server {
        listen       443 ssl;
        server_name  flydragon.site;
       //...
        location / {
            root   /www/wwwroot/out;
            index  index.html index.htm;
            //以下两行是关键,让服务器重定向
            try_files $uri $uri.html $uri/ =404;
            rewrite ^//(.*)$ //$1.html break;
        error_page 404 /404.html;
        location = /404 {
            internal;

成功案例:

总结完毕!

本文主要带大家学一下Next.js在生产环境下如何进行打包和在打包过程中遇到的一些坑。 其实Next.js打包时非常简单的,只要一个命令就可以打包成功。 但是当你使用了Ant Desgin后,在打包的时候会遇到一些坑。 打包 :next build 运行:next start -p 80 先把这两个命令配置到 package.json 文件里,比如配置成下面的样子。 "scripts": { "dev": "next dev", "build": "next bui
next-on-netlify是一个实用程序,用于在Netlify的Next.js中启用服务器端呈现。 它将您的应用程序包装在一个很小的兼容性层中,以便页面可以使用Netlify函数在服务器端进行呈现。 Netlify路线图的下一步 Netlify上Next.js的未来已经超越了next-on-netlify 。 推荐的前进路径是安装一个由next-on-netlify背后的团队发行并支持的构建插件。 该插件依赖于next-on-netlify但提供了更流畅的体验,包括: 一键式零配置安装 允许自定义功能并发布目录 有关更多信息,请参见。 我们团队的最终目标是使Netlify上