【发布时间】:2017-10-03 04:18:21
【问题描述】:
我想将一个文本文件添加到 /src,使其始终在构建目录的根目录 (/public) 中保持不变。
就我而言,我需要为 Netlify 添加一个 _redirects file 以将子域重定向到自定义域。
运行 Gatsby 1.0 alpha。
【问题讨论】:
我想将一个文本文件添加到 /src,使其始终在构建目录的根目录 (/public) 中保持不变。
就我而言,我需要为 Netlify 添加一个 _redirects file 以将子域重定向到自定义域。
运行 Gatsby 1.0 alpha。
【问题讨论】:
聚会有点晚了。
最简单的方法是在项目根目录中添加static 文件夹,然后将_redirects 放入其中。然后,当您构建 Gatsby 时,它会自动将其拾取并将其放入 /public 文件夹中。
【讨论】:
不需要将其放入/src。我只是将它直接添加到/public。
即使它在.gitignore 中,我还是使用了git add -f /public/_redirects,提交了它,并且成功了。它不会在构建过程中被删除或覆盖。
执行此操作的另一种方法(我尚未测试)是将文件复制到 /public 中的目标位置,作为 gatsby-node.js 中 post-build script 的一部分。
【讨论】:
postBuild 替换为onPostBuild。例如。在这里使用:spectrum.chat/gatsby-js/general/…
user-select: none; 嵌入的 index.html 文件,只需运行命令 git add -f public/index.html,推送到 Netlify,用户仍然可以选择。任何提示都会很棒。
即使这个问题得到了解答,我还是找到了另一种方法,我想分享一下。只需在构建期间复制您的 _redirects 文件或任何文件,如下所示:
"build": "gatsby build && cp src/_redirects public/"
它会在您每次构建部署时复制您的文件。我希望这对某人有帮助!
【讨论】:
我通过安装 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。
【讨论】:
Gatsby now recommends using the ./static/ directory 用于将文件逐字复制到构建目标中。
【讨论】: