【问题标题】:How do I add an arbitrary file to /public with Gatsby?如何使用 Gatsby 将任意文件添加到 /public?
【发布时间】:2017-10-03 04:18:21
【问题描述】:

我想将一个文本文件添加到 /src,使其始终在构建目录的根目录 (/public) 中保持不变。

就我而言,我需要为 Netlify 添加一个 _redirects file 以将子域重定向到自定义域。

运行 Gatsby 1.0 alpha。

【问题讨论】:

    标签: gatsby netlify


    【解决方案1】:

    聚会有点晚了。

    最简单的方法是在项目根目录中添加static 文件夹,然后将_redirects 放入其中。然后,当您构建 Gatsby 时,它会自动将其拾取并将其放入 /public 文件夹中。

    official docs

    【讨论】:

      【解决方案2】:

      不需要将其放入/src。我只是将它直接添加到/public

      即使它在.gitignore 中,我还是使用了git add -f /public/_redirects,提交了它,并且成功了。它不会在构建过程中被删除或覆盖。


      执行此操作的另一种方法(我尚未测试)是将文件复制到 /public 中的目标位置,作为 gatsby-node.js 中 post-build script 的一部分。

      【讨论】:

      • 将其添加到构建后脚本中有效。一个注意事项是将postBuild 替换为onPostBuild。例如。在这里使用:spectrum.chat/gatsby-js/general/…
      • 这不起作用,尝试仅发送内联 css 样式 user-select: none; 嵌入的 index.html 文件,只需运行命令 git add -f public/index.html,推送到 Netlify,用户仍然可以选择。任何提示都会很棒。
      【解决方案3】:

      即使这个问题得到了解答,我还是找到了另一种方法,我想分享一下。只需在构建期间复制您的 _redirects 文件或任何文件,如下所示:

      "build": "gatsby build && cp src/_redirects public/"
      

      它会在您每次构建部署时复制您的文件。我希望这对某人有帮助!

      【讨论】:

        【解决方案4】:

        我通过安装 gatsby-plugin-copy-files-enhanced 插件并编辑 gatsby-config.js 解决了类似的问题,如下所示:

        {
          resolve: `gatsby-source-filesystem`,
          options: {
            name: `extra`,
            path: `${__dirname}/src/extra`,
          },
        },
        {
          resolve: 'gatsby-plugin-copy-files-enhanced',
          options: {
            source: `${__dirname}/src/extra`,
            destination: '/',
            purge: false,
          },
        },
        

        注意:不要忘记将您的 _redirects 文件移动到 src/extra

        【讨论】:

          【解决方案5】:

          Gatsby now recommends using the ./static/ directory 用于将文件逐字复制到构建目标中。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-04-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-28
            • 2017-01-04
            相关资源
            最近更新 更多