我如何为一个具有大图像目录的博客设置Jekyll,以避免在生成的站点中复制该目录?
我正在考虑将Jekyll打造成一个包含大量图片(和其他大型媒体文件)的博客网站。为图片创建一个目录,然后根据需要在文章中链接到它们,这很容易。但是,据我所知,当生成站点时,所有图像数据都将复制到包含静态文件的生成站点目录中。每次生成站点时,都会清空_站点目录,并重新填充站点的静态版本 例如,有没有办法将一个符号链接放到站点目录中的images目录中,然后让jekyll在生成静态文件时忽略它我如何为一个具有大图像目录的博客设置Jekyll,以避免在生成的站点中复制该目录?,jekyll,Jekyll,我正在考虑将Jekyll打造成一个包含大量图片(和其他大型媒体文件)的博客网站。为图片创建一个目录,然后根据需要在文章中链接到它们,这很容易。但是,据我所知,当生成站点时,所有图像数据都将复制到包含静态文件的生成站点目录中。每次生成站点时,都会清空_站点目录,并重新填充站点的静态版本 例如,有没有办法将一个符号链接放到站点目录中的images目录中,然后让jekyll在生成静态文件时忽略它 还是有其他更合理的方法 假设您在apache web服务器上运行,您可以设置Alias指令,以从普通doc
还是有其他更合理的方法 假设您在apache web服务器上运行,您可以设置Alias指令,以从普通docroot之外的目录提供图像。您需要具有编辑VirtualHosts配置的权限或其他创建别名指令的功能(例如,通过控制面板) 例如,假设您将jekyll文件存储在名为“/web/jekyll”的目录下。要获取图像目录,请执行以下操作:
_config.yml
_images/
_layouts/
_posts/
_site/
index.md
Alias /images /web/jekyll/_images
顺便说一句,我喜欢源内容和输出内容的分离,而不是jekyll默认的分离。因此,我将目录结构设置为:
/web/jekyll/html/
/web/jekyll/images/
/web/jekyll/source/
/web/jekyll/source/_config.yml
/web/jekyll/source/_layouts
/web/jekyll/source/_posts
/web/jekyll/source/index.md
在_config.yml中设置以下选项
destination: ../html
以及apache alias指令设置,包括:
Alias /images /web/jekyll/images
Jekyll在“/web/Jekyll/source”目录中运行,但输出被发送到“/web/Jekyll/html”目录。与第一个示例类似,调用“http://jekyll/images/test.jpg“由“/web/jekyll/images/test.jpg”提供”。从站点服务的角度来看,这种设置并没有真正的区别。我喜欢原始源文件、完全烘焙的输出文件和通过alias工作的图像之间的清晰分离
/home/git/svnpenn.github.io
/home/git/img
#在jekyll完成之前,我们无法添加符号链接。我们将删除
#站点文件夹,并等待其重建。
rm-r_站点
杰基尔——服务器&
而[!-f_site/index.html]
做
睡眠1
完成
ln-s../images\u站点/图像
服务器。正确,jekyll命令的第一部分删除目标目录中的所有内容。问题是必须再次手动创建符号链接。接下来,继续创建一个脚本,每次都这样做 确保: 在_config.yml文件中排除:[jekyll,css,img] linux:“;”符号运行第一、第二、第三。。命令 脚本:一个名为jekyll的文件,其可执行权限包含
jekyll;
ln -s /var/www/css /var/www/_site/css;
ln -s /var/www/img /var/www/_site/img;
最后运行(./jekyll)该程序而不是jekyll
-丹我知道这已经得到了回答,但我走了一条稍微不同的路线。我在Dropbox上的一个公共目录中托管了我的所有图像,并使用grunt生成图像清单。它使我的存储库变小,因为图像不会被签入。我在一篇文章中对此进行了详细介绍。我可以看出这是如何工作的,但我应该提到,我真的希望映像目录位于_sites目录中,因为这样可以简化将整个内容同步到服务器的过程。有进一步的见解吗?(顺便说一句,谢谢你提供的关于网站结构的建议。我很感谢你抽出时间。)我现在不知道还能怎么做。关于rsync的一个注意事项是,在更新结构的第二个示例中,我们的想法是将“/web/jekyll/”中的所有内容rsync到您的服务器。“html”和“images”目录实际上会被使用,“source”目录只会为您提供代码的异地备份。您需要小心使用jekyll输出到的任何地方的符号链接。如果您的代码允许符号链接存在,但在升级过程中被破坏,那么jekyll可能会删除您的所有源图像。哇,这真是太棒了,跳出框框思考解决方案!