【问题标题】:Running multiple jekyll app simultaneously同时运行多个 jekyll 应用
【发布时间】:2013-01-06 14:26:22
【问题描述】:

我想知道是否可以同时运行多个 jekyll 应用程序。 我已经安装了工头,但是当另一个已经在运行时,它似乎无法更改应用程序端口。

目前我必须在 Procfile 中手动设置 jekyll 端口

web: jekyll --server 5000

是否有可能自动执行此操作?

【问题讨论】:

    标签: jekyll foreman


    【解决方案1】:

    我想我有点晚了,但这里是那些有同样问题的人的答案。 与 Ruby on Rails 一样,可以使用命令 --port 3000。 所以它看起来像这样:

    $ jekyll serve --port 8888
    

    编辑:如文档中所述,您还可以在 _config.yml 文件中简单地添加选项 port: 8888

    新生成的文件如下所示:

    name: Your New Jekyll Site
    pygments: true
    port: 8888
    

    这里以 8888 端口为例

    延伸阅读:


    这些只是一些可用的配置选项。许多配置选项可以在命令行上指定为标志,或者(更常见)它们可以在源目录根目录的 _config.yml 文件中指定。 Jekyll 将在运行时自动使用该文件中的选项。例如,如果您在 _config.yml 文件中添加以下行:

    source:      _source
    destination: _deploy
    

    那么下面两个命令就等价了:

    $ jekyll build
    $ jekyll build --source _source --destination _deploy
    

    所以使用命令行

    jekyll serve --port 8888
    

    相当于将port: 8888 放入您的_config.yml。

    【讨论】:

    • 有效,但并不是真正的新事物。正如上一个答案中的 cmets 所示,提问者想要某种自动检测来使用未使用的端口。
    • 这应该是 jekyll serve --port 8888,而不是 --p
    【解决方案2】:

    当然。正如您的问题已经暗示的那样,只需在不同的服务器端口上运行不同的实例(使用 5000 而不是默认的 4000)。请记住,如果您不想在运行命令中指定服务器,则可以在 _config.yml 文件中指定服务器(以及所有 other command-line options)。请澄清我是否误解了这个问题。

    【讨论】:

    • 不,这是正确的:)。如果可能的话,我只是在寻找一种让端口自动检测的方法。只是为了让我在切换项目时不会忘记哪个已经在使用。到目前为止,我已经在我的 Procfile 中设置了端口文件。
    • 例如理想情况下,它会检测到 Jekyll 站点正在 4000 上运行,因此会在 5000 上生成一个?不知道该怎么做,但最简单的方法可能是编写一个 Rakefile 或 bash 脚本先进行检查(例如,通过 curl 进行 ping 操作?)然后使用服务器号调用 Jekyll?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    相关资源
    最近更新 更多