我正试图使Next.js构建具有可移植性,这意味着我只需运行一次build命令,然后便可以将站点部署到任何环境中,所有差异均由环境变量控制。这样做的主要动机是在通过质量检查或登台环境进入生产时加快部署时间。
我还想将所有静态文件(主要是js,图像和字体)上传到S3。
我正在使用next-images和next-fonts,问题是这两个似乎都只允许我们在构建时对这些资产的公共路径进行编码。因此,如果我想在路径中包含CDN前缀,那么我将失去具有可移植构建的功能。
Next.js本身允许在运行时设置自己的assetPrefix
,因此,按预期工作的是Next管理的资产,例如脚本文件。
我花了数小时试图弄乱__webpack_public_path__
,以使它正常工作,但没有成功。现在,我唯一可行的计划是使用在运行时确定路径前缀的函数来包装静态资产的每次使用。这将是大量工作,因此,如果有更好的方法,我宁愿不这样做。
有人能在配置级别而不是在应用程序代码级别解决此问题吗?