NextJS静态构建将哈希值放在资产路径的前面

时间:2020-03-25 21:41:49

标签: javascript next.js

我运行next build && next export,它会产生一个文件夹out,很好。

例如,在查看index.html文件的来源时,它正在按预期从<link rel="preload" href="/_next/static/css/styles.aa216922.chunk.css" as="style"/>请求资产。

我很好奇能否在此路径前添加静态值,例如<link rel="preload" href="/aaaaa/_next/static/css/styles.aa216922.chunk.css" as="style"/>

我已经尝试过修改每个配置:

https://nextjs.org/docs/api-reference/next.config.js/exportPathMap

next.config.js

exportTrailingSlash: true,
dir: 'aaaaa', // nope
outDir: 'aaaa', // nope
distDir: 'aaaaa', // nope

也许我没有正确使用它们?

1 个答案:

答案 0 :(得分:0)

根据https://nextjs.org/docs/api-reference/next.config.js/cdn-support-with-asset-prefix

解决此问题的方法是assetPrefix

next.config.js

exportTrailingSlash:是, assetPrefix:process.env.SOME_ENV_VAR ==='AUTOBUILDNEXT'吗? '/ aaaaa':'',

结果

<link rel="preload" href="/aaaaa/_next/static/css/styles.aa216922.chunk.css" as="style"/>

现实世界中的用例可能是:

  1. 詹金斯设置了一些哈希值
  2. 将该哈希值设置为环境变量
  3. 将其作为参数传递给docker容器
  4. 使用该哈希值作为资产前缀

next.config.js

exportTrailingSlash:是, assetPrefix:process.env.BUILD_ID? /${process.env.BUILD_ID}:“,