一、node_modules 拆分为层
默认会把工程中的 node_modules 拆分为 层(layer)部署。简单来说,层就是把项目中不经常变更的部分独立出来,云函数运行时再把层包含的文件挂载到云函数的执行环境中。
·Next.js 和 Nuxt.js 项目的 node_modules 会比较大,项目稳定后,部署不需要每次都更新 node_modules。
·把 node_modules 部署为层,每次部署只需要上传业务代码,部署会快很多。
·更新 node_modules 的层时,建议使用 npm install –production 安装依赖包,减少代码包体积,加快部署和启动速度。
点击查看 层部署指引 >>
二、启用静态资源托管
·Next.js 应用默认会把 .next/static 目录和 public 目录下的所有文件启用静态资源托管。
·把静态内容( HTML、JavaScript、CSS、图像、视频等文件)托管到 COS,不占用云函数的访问资源,成本更低,访问速度更快。
点击查看 静态资源托管改造 >>
三、前提条件
·启用 CDN 加速必须使用你已经在腾讯云备案的自有域名,详情请参见 备案指引。
·设置自定义域名,需要在域名管理设置一条 CNAME 记录,指向配置的对象存储的二级域名。
·更多 COS 设置 CDN 加速域名的说明请参见 COS 域名管理。
四、配置指引
·控制台配置
创建应用时,你可以直接在高级配置里开启 CDN 加速,填入你已备案且配置好解析的域名,完成 CDN 域名加速的配置。
选择"自动配置 CNAME"时,Serverless SSR 会尝试自动为你配置域名的 CNAME 解析,一般需要5 – 10分钟生效,你可以在 域名解析控制台 查看解析结果,或手动配置解析。
·本地配置
在 serverless.yml 文件中,inputs 字段里增加以下配置内容,完成 CDN 加速域名的配置。
org: orgDemoapp: appDemostage: devcomponent: nextjsname: nextjsDemo inputs:# 此处省略….# 静态资源相关配置staticConf: cosConf: # 这里是创建的 COS 桶名称 bucket: serverless-nextjs cdnConf: # CDN 加速配置 domain: static.test.com https: certId: abcdefg
修改配置文件 next.config.js(nuxt.js 项目为 nuxt.config.js),将 STATIC_URL 参数改为你的自定义域名,以 next.js 为例:
const isProd = process.env.NODE_ENV === 'production';const STATIC_URL ="static.test.com"; module.exports = { env: { STATIC_URL: isProd ? STATIC_URL : '', }, assetPrefix: isProd ? STATIC_URL : '',};
完成修改后,重新部署,即可完成 CDN 加速域名的配置。
sls deploy
五、前提条件
·系统默认会给应用分配一个二级域名,你可以通过绑定自有域名,用自有域名访问应用。
·自定义域名必须是已经在腾讯云备案的域名,目前,腾讯云已推出 Serverless 备案资源包,帮你快速完成 ICP 备案,详情请参考 ICP 备案。
·设置自定义域名需要在域名管理配置一条 CNAME 记录,指向系统分配的二级域名。 详情请参考 配置自定义域名。
六、配置指引
·控制台配置
创建应用时,你可以直接在高级配置里开启自定义域名,填入你已备案且配置好解析的域名,完成自定义域名的配置。
建议你 手动配置域名解析,你也可选择自动配置,勾选“自动配置 CNAME” 时,Serverless SSR 会尝试自动为你配置域名的 CNAME 解析,一般需要5 – 10分钟生效,你可以在 域名解析控制台 查看解析结果,或手动配置解析。
·本地配置
在 serverless.yml 文件中,inputs 字段里增加以下配置内容,完成自定义域名的配置。
org: orgDemoapp: appDemostage: devcomponent: nextjsname: nextjsDemo inputs:# 此处省略….# 自定义域名相关配置 customDomains: – domain: test.com certificateId: abcdefg # 证书 ID # 这里将 API 网关的 release 环境映射到根路径 pathMappingSet: – path: / environment: release protocols: – https
完成修改后,重新部署,即可完成自定义域名的配置。