【问题标题】:NextJS static build prepend hash to asset pathNextJS 静态构建将哈希添加到资产路径
【发布时间】:2020-07-06 12:39:17
【问题描述】:

我运行 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

也许我没有正确使用这些?

【问题讨论】:

    标签: javascript next.js


    【解决方案1】:

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

    解决这个问题的方法是assetPrefix

    next.config.js

    exportTrailingSlash:真, 资产前缀:process.env.SOME_ENV_VAR === 'AUTOBUILDNEXT' ? '/aaaa' : '',

    结果

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

    现实世界的用例可能是:

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

    next.config.js

    exportTrailingSlash:真, 资产前缀:process.env.BUILD_ID ? /${process.env.BUILD_ID}:'',

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多