好像您将jsx文件放在大多数gatsby入门程序的'pages'文件夹中一样,URL遵循开箱即用的目录结构,因此您可以实现所需的任何URL(http://blah.com/ < strong> foo / post1,http://blah.com/ bar / post2),只需在源代码树(pages/foo/post.jsx
,pages/bar/post2.jsx
)中嵌套文件夹即可。>
我使用了 gatsby高级入门(https://github.com/Vagr9K/gatsby-advanced-starter)。它将所有内容文件都不放在pages/
中,而是放在顶级content/
文件夹中,即使创建了{{1之后,我也无法弄清楚复制foo / xxx,bar / xxx url的方式}},content/foo/post1.md
个文件夹。
它确实有一个siteconfig.js,它设置了一个路径前缀,但是我想为该网站的2个不同部分设置两个不同的前缀,所以我只设置了现在将其设置为“ /”(构建似乎忽略了我为此配置参数设置的任何值,所以……耸了耸肩)。
content/bar/post2.md
添加到.md文件的开头,并将其设置为父文件夹名称。完全忽略了这一点(无论如何,我都不是我想要的……我想将生成的段保留为URL的一部分。)path
,希望它可以更改graphql图以识别2个单独的数据源,但是没有区别。我在做什么错了?
答案 0 :(得分:3)
好像您将jsx文件放在大多数gatsby启动程序的'pages'文件夹中一样,URL遵循开箱即用的目录结构[...]
这不是盖茨比首发特定的,这是盖茨比的默认行为。 src/pages
中的每个js / jsx文件都将是一个页面。
但在顶级
content/
文件夹中
对于常规页面,它仍然具有src/pages
文件夹。但是content
文件夹中保存的文件将被src/templates
中的gatsby-node.js
转换为页面。或换句话说:content
文件夹的内容是通过gatsby-node.js
中定义的模板(且模板位于src/templates
中)以编程方式创建的。
此处的createPage
函数中定义了路径/ URL get:gatsby-nodeL144。该行引用edge.node.fields.slug
,该slug
在here上方的GraphQL中被查询。该字段将添加到onCreateNode函数中。更具体地说,onCreateNodeField函数中的slug
字段。在那里,您看到它通过了上面定义的src/content
。
在blog
文件夹中创建两个文件夹,例如projects
和gatsby-config.js
。确保在{
resolve: 'gatsby-source-filesystem',
options: {
name: 'blog',
path: `${__dirname}/content/blog`,
},
},
{
resolve: 'gatsby-source-filesystem',
options: {
name: 'projects',
path: `${__dirname}/content/projects`,
},
},
中都定义了它们:
gatsby-node.js
在fileNode定义后的const pathPrefix = fileNode.sourceInstanceName
中添加以下行:
sourceInstanceName
name
是我们在gatsby-config
条目中定义为createNodeField({ node, name: "slug", value: `/${pathPrefix}${slug}` });
createNodeField({ node, name: 'sourceInstanceName', value: pathPrefix });
的东西。
然后,您可以将line更改为:
export const pageQuery = graphql`
query BlogQuery {
allMarkdownRemark(filter: { fields: { sourceInstanceName: { eq: "blog } } }
) {
edges {
node {
... etc
}
}
}
}
`
如果您只想查询两个文件夹之一,则第二行很有用,例如:
rrdtool create CPU.rrd --start $Date \
DS:CPU_ALL:GAUGE:600:U:U \
DS:User:GAUGE:600:U:U \
DS:Sys:GAUGE:600:U:U \
DS:Wait:GAUGE:600:U:U \
DS:Idle:GAUGE:600:U:U \
RRA:AVERAGE:0.5:1:20000 \
RRA:AVERAGE:0.5:1:20000 \
RRA:AVERAGE:0.5:1:20000 \
RRA:AVERAGE:0.5:1:20000 \
RRA:AVERAGE:0.5:1:20000