如何让jekyll复制子文件夹?

如何让jekyll复制子文件夹?,jekyll,Jekyll,我在我的_posts文件夹中有一个子文件夹,是给杰基尔的。我使用降价表链接到该文件夹中的图像: ![myimg](imgs/myimage.jpg) 生成网站时,jekyll会正确创建链接: <img src='imgs/myimage.jpg> 但它不会将带有图像的imgs文件夹复制到\u站点中的正确子目录 如果html被创建为 _site/2013/10/myEntry.html 图像应该在 _站点/2013/10/imgs 用于链接工作的文件夹 如何将jekyll配置为

我在我的_posts文件夹中有一个子文件夹,是给杰基尔的。我使用降价表链接到该文件夹中的图像:

![myimg](imgs/myimage.jpg)
生成网站时,jekyll会正确创建链接:

<img src='imgs/myimage.jpg>

但它不会将带有图像的imgs文件夹复制到\u站点中的正确子目录

如果html被创建为

_site/2013/10/myEntry.html

图像应该在

_站点/2013/10/imgs

用于链接工作的文件夹


如何将jekyll配置为通过imgs文件夹复制到网站的正确位置?

虽然最好将您的图像文件夹放在jekyll网站的根目录下,但您可以使用一个插件,使jekyll能够识别您在
\u帖子中的图像文件夹。在图像文件前面加上与帖子使用的日期格式相同的前缀,它们将被复制到所需目录结构中的
\u站点

##_插件/post_images.rb
杰基尔模块
POST_IMAGES_DIR='\u posts/imgs'
DEST_IMAGES_DIR='imgs'
类PostImageFile0,则date_dir+=“#{name_bits.shift}/”
如果name_bits.first.to_i>0,则date_dir+=“#{name_bits.shift}/”
如果name_bits.first.to_i>0,则date_dir+=“#{name_bits.shift}/”
join(dest,date\u dir+dest\u IMAGES\u dir,name\u bits.join('-'))
结束
结束
类后映像生成器<生成器
def生成(站点)
#检查posts目录中的images目录。
返回,除非文件.exists?(POST\u IMAGES\u DIR)
post_图像=[]
#处理每个图像。
目录foreach(POST_IMAGES_Dir)do|条目|
如果输入!='.&&条目!='..'

site.static_files我开发了一个Jekyll插件,它可以帮助将帖子资产与降价文件放在一起,它可能会满足您的需要:

是的,我知道这是默认方法,但我想将我的图片与文本一起保存,这样它们就不会成为孤儿(多年来我的MT和Wordpress博客就是这样)。没有办法让Jekyll从_posts文件夹内或下方复制其他内容吗?我已经用一个插件更新了我的答案,该插件将复制_posts文件夹内的图像。谢谢你的插件。它起作用了!但是,我需要imgs文件夹作为包含最终html的目录的子目录结束。我不同意将图片放在根目录下的一个巨大的公共文件夹中,而不是需要它的html中。我更新了我的问题,使之更加清晰。啊,我用一个修改过的插件修改了我的答案,以支持那个目录结构。您将需要为每个图像文件添加与您在帖子中使用的日期格式相同的前缀。太好了!我不得不将File.join更改为
File.join(dest,date\u dir+dest\u IMAGES\u dir,@name)
,因为链接将包含日期,所以我不想删除它。。。由于“未定义的局部变量”错误,不得不添加
post_images='
,但其他情况下它仍能正常工作。仅供参考--下面的答案会很好,我想--Jekyll只复制没有前面下划线的文件夹,只处理带有前置内容的_post中的内容。这就是为什么它没有复制你的图片。这个插件确实可以工作,但感谢你提醒我它只处理前台事务。我敢肯定,如果我在别的地方弄明白了,我会发疯的这很有用,但我真的很喜欢将资源放在帖子下面的子文件夹中,这样只有实际帖子在文件夹中,所有连接的位都在子文件夹中。仍然连接,因为它们位于包含帖子的文件夹正下方的子文件夹中,但不会阻塞文档浏览器中帖子本身的视图。我对KramerC插件的修改版本可以满足我的需求。它确实要求我在资产文件名前加上日期前缀,但我可以让我的编辑器(Texthaven)帮我这样做,所以这不会太麻烦。这意味着你仍然需要在标记中指定文件夹,这是我想为作者简化的一件事,但我理解你自己的需要。