我将我的 jekyll _site 文件夹推送到我服务器的子文件夹 /blog 中,如何修复所有资产和链接?
I pushed my jekyll _site folder to my server in a subfolder /blog, how to fix all assets and links?
有没有办法配置 jekyll,以便在 _site 文件夹中构建静态文件时调整所有 assets/urls 以便它在子文件夹中工作?
我的设置是这样的:
www.example.com/
我将所有 _site files/folders 推送到一个子目录:
www.example.com/blog/
所以现在当我查看我的网站时,所有 css/images 都没有呈现,因为它们都指向 :
<link rel="stylesheet" href="/assets/vendor/bootstrap/css/bootstrap.min.css">
但正确的URL应该是:
/blog/assets/vendor/bootstrap/css/bootstrap.min.css
我为此使用 nginx,我创建了一个位置部分,如:
location ^~ /blog/ {
alias /home/deploy/apps/_site/;
}
您是否尝试过在 Jekyll 中使用 baseurl
设置?在 GH 上托管项目时,它基本上是像您尝试做的那样从子文件夹中提供服务,baseurl 是处理它的常用方法。
在你的配置文件中设置基础url:
baseurl: /blog
然后更新您的模板以使用 Jekyll 的 relative_url
过滤器正确引入 baseurl
设置。例如:
<link rel="stylesheet" href="{{ 'assets/css/site.css' | relative_url }}">
或其他地方
{{ page.url | relative_url }}
一个不太稳健的解决方案是直接在所有 url 前面加上 {{ site.baseurl }}
,例如:
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/site.css">
使用 baseurl
构建 url 的方法有很多种 - 这些只是其中的几种。
如果您的网站已经完成并且 none 的链接中内置了基础 url,那么除了继续更新所有链接之外,没有简单的方法可以添加它。
就是说,baseurl 并没有太多神奇之处 - 除了在需要更改时将其放在一个编辑位置之外。还有一些关于 jekyll serve 的东西可以帮助网站在进行本地开发工作时更好地在浏览器中工作(我相信 serve 和 build treat baseurl 略有不同)。
有没有办法配置 jekyll,以便在 _site 文件夹中构建静态文件时调整所有 assets/urls 以便它在子文件夹中工作?
我的设置是这样的:
www.example.com/
我将所有 _site files/folders 推送到一个子目录:
www.example.com/blog/
所以现在当我查看我的网站时,所有 css/images 都没有呈现,因为它们都指向 :
<link rel="stylesheet" href="/assets/vendor/bootstrap/css/bootstrap.min.css">
但正确的URL应该是:
/blog/assets/vendor/bootstrap/css/bootstrap.min.css
我为此使用 nginx,我创建了一个位置部分,如:
location ^~ /blog/ {
alias /home/deploy/apps/_site/;
}
您是否尝试过在 Jekyll 中使用 baseurl
设置?在 GH 上托管项目时,它基本上是像您尝试做的那样从子文件夹中提供服务,baseurl 是处理它的常用方法。
在你的配置文件中设置基础url:
baseurl: /blog
然后更新您的模板以使用 Jekyll 的 relative_url
过滤器正确引入 baseurl
设置。例如:
<link rel="stylesheet" href="{{ 'assets/css/site.css' | relative_url }}">
或其他地方
{{ page.url | relative_url }}
一个不太稳健的解决方案是直接在所有 url 前面加上 {{ site.baseurl }}
,例如:
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/site.css">
使用 baseurl
构建 url 的方法有很多种 - 这些只是其中的几种。
如果您的网站已经完成并且 none 的链接中内置了基础 url,那么除了继续更新所有链接之外,没有简单的方法可以添加它。
就是说,baseurl 并没有太多神奇之处 - 除了在需要更改时将其放在一个编辑位置之外。还有一些关于 jekyll serve 的东西可以帮助网站在进行本地开发工作时更好地在浏览器中工作(我相信 serve 和 build treat baseurl 略有不同)。