我刚开始和杰基尔合作.作为前端开发人员,我必须在开发之前为Web应用程序创建大量静态页面.
我试图在_site没有服务器的情况下在文件夹内运行jekyll生成的文件作为我的工作流程的一部分我必须将纯静态HTML文件发送到其他开发团队或在演示期间向客户端显示(有时作为zip文件夹,所以不能硬编码配置文件中的任何特定路径).
我无法从本地文件夹运行jekyll文件,file:///C:/Users/因为所有链接和资产仅在从jekyll服务器运行时才起作用.
有什么办法可以实现这一目标.
谢谢
Dav*_*ara 11
您可以在没有服务器的情况下查看已构建的Jekyll站点 - 但它需要一个额外的工具.
像往常一样为您的Jekyll网站提供服务,并使用wget以平面格式克隆您提供的服务网站.这将适用于Linux系统:
您可能需要使用wget设置,但如果您的站点在端口4000上提供,您可以尝试这样的事情:
wget --convert-links -r http://127.0.0.1:4000/
Run Code Online (Sandbox Code Playgroud)
你可能需要小心递归标志.见http://www.gnu.org/software/wget/
这对于Jekyll来说基本上是不可能的,因为索引页面是不同的层次结构(/ index),每个博客帖子都是嵌套的URL(/ posts/about).因此,对于每个页面,CSS和Javascript等内容的URL必须不同.对于帖子,它应该是"../ css/...",对于索引,它应该是"./css/".没有正在运行的服务器,这是不可能的.
所以这里有一些选项:
通过"." 作为基本网址.所以你的风格将成为'./css/'.现在您的索引页面工作正常,但博客文章不会(他们需要'../')
jekyll serve --baseurl .
Run Code Online (Sandbox Code Playgroud)将当前文件夹作为基本URL传递.现在您不需要服务器,但您的_site文件夹与您机器的文件夹相关联,而且不是完全可移植的.
jekyll serve --baseurl $(pwd)
Run Code Online (Sandbox Code Playgroud)使用轻量级服务器.这将在当前文件夹上启动一个简单的服务器(因此请确保您进入_site文件夹),因此您不需要安装jekyll.这在python中是默认可用的,因此只要安装了python,就不必单独安装任何东西.
python -m SimpleHTTPServer <port>
Run Code Online (Sandbox Code Playgroud)编辑:我刚刚使用亲戚链接发布了一个新答案。这是更便携的解决方案。
我看到你的问题的三种解决方案:
使用Github Pages上的公共或私人存储库为您的工作提供服务。您可以使用Octopress开发的想法将代码和生成的文件存储在存储库的两个不同分支上,并向开发人员提供对纯 html 的访问权限。
通过使用baseurl中的配置变量_config.yml。
如果网站的 zip 解压在 中C:/Users/toto/mysite,请添加:
# No trailing slash
baseurl: "file:///C:/Users/toto/mysite"
Run Code Online (Sandbox Code Playgroud)
在默认的 Jekyll 模板中,资产通过以下方式调用:
<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
or
<script src="{{ site.baseurl }}/assets/javascripts/script.js"></script>
Run Code Online (Sandbox Code Playgroud)
链接和图像必须使用baseurl:
# html link
<a href="{{ site.baseurl }}{{ page.url }}">{{ page.title }}</a>
# markdown link
[{{ page.title }}]({{ site.baseurl }}{{ page.url }})
# html image
<img src="{{ site.baseurl }}/assets/myimage.png">
# markdown image

Run Code Online (Sandbox Code Playgroud)
注意:任何具有以
(例如:)permalink结尾的页面都将导致链接定位并登陆到文件夹的文件列表页面。folder/index.htmlpermalink: /about/folder/
您可以尝试一下似乎可以在 Windows 上运行的Portable Jekyll。