【问题标题】:Broken urls in Jekyll in DockerDocker 中 Jekyll 中的 URL 损坏
【发布时间】:2020-01-15 22:01:21
【问题描述】:

我有这个问题,我有在 docker 内运行的 Jekyll 站点,并且 URL 已损坏,因为它使用 http://0.0.0.0:4000 作为站点 URL。

我正在使用它来运行 docker:

docker run --rm -ti -v $(pwd):/tmp/www -p 8080:4000 jcubic.pl

然后执行:

CMD jekyll serve --host 0.0.0.0

我可以访问http://localhost:8080,但所有网址都已损坏。

【问题讨论】:

    标签: docker url jekyll


    【解决方案1】:

    问题在于,在 Jekyll 中,如果您使用开发模式,它会将 {{ site.url }} 替换为从主机和端口获取的当前 URL,因此它将是 http://0.0.0.0:4000

    在这个issue on GitHub找到的解决方案

    使用非生产环境,因此您在代码中的生产检查不会中断(如果您不想在开发模式下显示某些内容)

    然后添加 _config_dockerl.yml :

    url: ""
    

    然后运行:

    # Dockerfile
    CMD jekyll serve --host 0.0.0.0 --config _config.yml,_config_docker.yml
    
    #bash
    docker run --rm -ti -v $(pwd):/tmp/www -e "JEKYLL_ENV=docker" -p 8080:4000 image
    

    这样{{ site.url }} 将是空字符串。它只会在您需要通过 http 传递真实 url 的情况下中断(我有这个与共享按钮,所以我只在生产中启用它们)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多