我想在/src
中添加一个文本文件,使其始终在构建目录(/public
)的根目录中保持不变。
在我的案例中,我需要为Netlify添加_redirects
file,以将子域重定向到自定义域。
运行Gatsby 1.0 alpha。
答案 0 :(得分:6)
晚会晚了。
最简单的方法是在项目根目录中添加static
文件夹,然后将_redirects
放在其中。然后,当您构建Gatsby时,它将自动将其拾取并将其放置在/public
文件夹中。
答案 1 :(得分:3)
不需要将其放入FROM gliderlabs/alpine:3.4
RUN apk update && \
apk add --update bash && \
apk add openssh-client
# Security fix for CVE-2016-0777 and CVE-2016-0778
RUN echo -e 'Host *\nUseRoaming no' >> /etc/ssh/ssh_config
ENTRYPOINT ["ssh"]
。我刚刚将它直接添加到/src
。
即使它在/public
中,我使用.gitignore
,提交它,它也有效。它在构建期间不会被删除或覆盖。
另一种方法(我还没有测试过)就是将文件复制到/ public中的目的地,作为gatsby-node.js中post-build script的一部分。
答案 2 :(得分:0)
即使这个问题得到了回答,我还是找到了另一种方式来做,我也想分享。只需在构建期间复制您的_redirects
文件或任何文件,就像这样:
"build": "gatsby build && cp src/_redirects public/"
,它将在每次构建进行部署时复制您的文件。希望对您有所帮助!
答案 3 :(得分:0)
我通过安装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
。
答案 4 :(得分:0)
Gatsby now recommends using the ./static/
directory 用于将文件逐字复制到构建目标中。