Jekyll 中 localhost 和 github 页面的 Baseurl 行为不同
Baseurl behavior differs between localhost and github pages in Jekyll
我正在使用 Jekyll
开发静态站点,并将部署到 github pages
。我在配置文件中使用 baseurl 时遇到问题。这是我的 _config.yml
:
的摘录
baseurl: "/blog"
url: "http://remidoolaeghe.github.io"
当 运行 在本地 http://localhost:4000/blog/ 时,一切正常。找到html个页面,加载资源(图片,css,js)并应用到页面上。
在 Github Pages
上部署后,我希望该站点可用:http://remidoolaeghe.github.io/blog
但实际的 URL 是 http://remidoolaeghe.github.io.
Github Pages
上的 Jekyll
似乎没有使用 baseurl。 HTML 页面不在预期的 URLs,任何资源也不在(css、图像等)。浏览器不会加载任何基于 baseurl 的内容,如您在此处所见:
我检查过用过的Jekyll version
。我使用与 Github Pages
(2.4.0).
相同的方法
我是不是漏掉了什么?
可以找到我的 Github
存储库 here。
jekyll 使用 baseurl
来构建相对于您网站根目录的 url。例如:<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
.
github 页面不使用它来生成您的站点路径。
为了在 http://remidoolaeghe.github.io/blog 访问您的博客,您需要将其移动到 blog 存储库中。
另一种重定向到 /blog
的方法是:
1. GitHub 页面重定向自
GitHub 页面允许 redirect-from
Jekyll 插件,如前所述 here. You could use their plugin 并从那里重定向。虽然它是为防止旧的 links 进入 404 而构建的,但根据您的用例,这可能不是您想要的。
2。在您的根目录中手动设置元刷新标签 index.html
.
<META http-equiv="refresh" content="0;URL=/blog/">
您需要 <head> </head>
中的那个标签。这将告诉对根 url 的任何请求指向存储在 /blog/
的 index.html
。这是一种快速的方法,类似于 .htaccess
rewrites are done, except GitHub Pages doesn't support .htaccess for security reasons. At that point also check if you're getting 404
s for some resources and update their paths accordingly, maybe with the help of site.baseurl
, as another answer explains. baseurl
is not what you think it does. See this post by Parker about the baseurl variable.
简而言之,
我认为您最好的选择是使用第二个,而不是创建一个 gh-pages blog
存储库并将您的站点移到那里。事实上,如果您确实移动到一个单独的博客存储库,这可能会使事情变得复杂,您仍然需要重定向 http://remidoolaeghe.github.io
以指向 http://remidoolaeghe.github.io/blog
或其他人访问 http://remidoolaeghe.github.io
而不是 /blog
link 只得到一个空白页。
我遇到了同样的问题,我的 kitty image
在本地主机中显示得很可爱,但在 github 页面中丢失并出现 404 错误并且路径名错误地丢失 baseurl
。我在 kitty-image-problem-solved.
中解决了它
简而言之,为了让您的 /img/avatar.png 出现在您的 _posts/ posts 中,您应该这样做
![Paris]( {{"/img/avatar.png" | relative_url }})
relative_url
的文档位于 jykyll-liquid-filters
我正在使用 Jekyll
开发静态站点,并将部署到 github pages
。我在配置文件中使用 baseurl 时遇到问题。这是我的 _config.yml
:
baseurl: "/blog"
url: "http://remidoolaeghe.github.io"
当 运行 在本地 http://localhost:4000/blog/ 时,一切正常。找到html个页面,加载资源(图片,css,js)并应用到页面上。
在 Github Pages
上部署后,我希望该站点可用:http://remidoolaeghe.github.io/blog
但实际的 URL 是 http://remidoolaeghe.github.io.
Github Pages
上的 Jekyll
似乎没有使用 baseurl。 HTML 页面不在预期的 URLs,任何资源也不在(css、图像等)。浏览器不会加载任何基于 baseurl 的内容,如您在此处所见:
我检查过用过的Jekyll version
。我使用与 Github Pages
(2.4.0).
我是不是漏掉了什么?
可以找到我的 Github
存储库 here。
jekyll 使用 baseurl
来构建相对于您网站根目录的 url。例如:<link rel="stylesheet" href="{{ "/css/main.css" | prepend: site.baseurl }}">
.
github 页面不使用它来生成您的站点路径。
为了在 http://remidoolaeghe.github.io/blog 访问您的博客,您需要将其移动到 blog 存储库中。
另一种重定向到 /blog
的方法是:
1. GitHub 页面重定向自
GitHub 页面允许 redirect-from
Jekyll 插件,如前所述 here. You could use their plugin 并从那里重定向。虽然它是为防止旧的 links 进入 404 而构建的,但根据您的用例,这可能不是您想要的。
2。在您的根目录中手动设置元刷新标签 index.html
.
<META http-equiv="refresh" content="0;URL=/blog/">
您需要 <head> </head>
中的那个标签。这将告诉对根 url 的任何请求指向存储在 /blog/
的 index.html
。这是一种快速的方法,类似于 .htaccess
rewrites are done, except GitHub Pages doesn't support .htaccess for security reasons. At that point also check if you're getting 404
s for some resources and update their paths accordingly, maybe with the help of site.baseurl
, as another answer explains. baseurl
is not what you think it does. See this post by Parker about the baseurl variable.
简而言之,
我认为您最好的选择是使用第二个,而不是创建一个 gh-pages blog
存储库并将您的站点移到那里。事实上,如果您确实移动到一个单独的博客存储库,这可能会使事情变得复杂,您仍然需要重定向 http://remidoolaeghe.github.io
以指向 http://remidoolaeghe.github.io/blog
或其他人访问 http://remidoolaeghe.github.io
而不是 /blog
link 只得到一个空白页。
我遇到了同样的问题,我的 kitty image
在本地主机中显示得很可爱,但在 github 页面中丢失并出现 404 错误并且路径名错误地丢失 baseurl
。我在 kitty-image-problem-solved.
简而言之,为了让您的 /img/avatar.png 出现在您的 _posts/ posts 中,您应该这样做
![Paris]( {{"/img/avatar.png" | relative_url }})
relative_url
的文档位于 jykyll-liquid-filters