Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jekyll中localhost和github页面的Baseurl行为不同_Jekyll_Github Pages_Base Url - Fatal编程技术网

Jekyll中localhost和github页面的Baseurl行为不同

Jekyll中localhost和github页面的Baseurl行为不同,jekyll,github-pages,base-url,Jekyll,Github Pages,Base Url,我正在使用Jekyll开发一个静态站点,部署在github页面上。我在使用配置文件中的baseurl时遇到问题。这是我的\u config.yml的摘录: baseurl: "/blog" url: "http://remidoolaeghe.github.io" 在本地运行时,一切正常。html页面被找到,资源(图像、css、js)被加载并应用到页面上 一旦部署到Github页面,我希望该站点可以在以下位置使用: 但实际的URL是 似乎Github页面上的Jekyll没有使用baseurl。

我正在使用
Jekyll
开发一个静态站点,部署在
github页面上。我在使用配置文件中的baseurl时遇到问题。这是我的
\u config.yml
的摘录:

baseurl: "/blog"
url: "http://remidoolaeghe.github.io"
在本地运行时,一切正常。html页面被找到,资源(图像、css、js)被加载并应用到页面上

一旦部署到
Github页面
,我希望该站点可以在以下位置使用: 但实际的URL是

似乎
Github页面上的
Jekyll
没有使用baseurl。HTML页面不在预期URL处,任何资源(css、图像等)也不在预期URL处。浏览器不会加载任何基于baseurl的内容,如下所示:

我已经检查了使用的
Jekyll版本
。我使用的页面与Github页面相同(2.4.0)

我错过什么了吗


可以找到My
Github
repo。

jekyll使用
baseurl
构建相对于网站根目录的url。例如:

github页面不使用它来生成站点路径


若要访问您的博客,您需要将其移动到博客存储库中。

重定向到
/blog
的另一种选择是:

1。GitHub页面重定向自

GitHub页面允许从
Jekyll插件重定向,如前所述。你可以使用他们的链接并从那里重定向。尽管它是为防止旧链接转到404而构建的,但考虑到您的用例,这可能不是您想要的

2。在根目录中手动设置元刷新标记
index.html

<META http-equiv="refresh" content="0;URL=/blog/">

您需要在
中使用该标记。这将告诉用户对根url的任何请求都指向存储在
/blog/
中的
index.html
。这是一种快速的方法,与
.htaccess
类似,只是出于安全原因,GitHub页面不支持.htaccess。在这一点上,还可以检查您是否获得了一些资源的
404
s,并相应地更新它们的路径,如另一个答案所解释的,可以借助
site.baseurl
baseurl
不是您认为的那样。看

简而言之,
我认为您最好的选择是使用第二个,而不是创建一个gh页面
博客
存储库并将您的站点移动到那里。事实上,如果你真的转到一个单独的博客回购,这可能会让事情变得复杂,您仍然需要重定向
http://remidoolaeghe.github.io
指向
http://remidoolaeghe.github.io/blog
或访问
http://remidoolaeghe.github.io
而不是
/blog
链接只能获得一个空白页。

这很奇怪,因为我在本地部署的站点运行良好。它不在/blog文件夹中,只在默认的站点文件夹中。区别在哪里?我明白你的意思。你帮我想知道我到底想要什么。实际上,我希望在我的网站上有一个“博客”部分,还有一个“非博客”部分。我想我必须转移到一个博客github repo,这样我仍然可以从博客部分链接一个非博客部分(带有超链接),反之亦然。你认为我可以有一个repo生成网站的一部分可以访问,另一个指向并使访问者产生错觉,从访问者的角度来看,这是一个单一的网站吗?当然,你可以有一个正常的GitHub页面repo,可以在正常的GitHub.io域访问,然后有超链接指向你的第二个repo,这是一个名为
blog
gh页面
repo:但是除了必须推两次之外,也许最好在一个repo中包含所有内容,并将帖子发送到blog,除非你觉得管理两个repo更好,当然访问者会将其视为一个网站,如果你有相同的风格和设计,我想你不想要一个相同的,因为你想要2回购?(因为如果你真的想要相同的设计,管理一次回购可能会更好?)当然,我想避免管理两次回购。在一个完美的世界中,我希望我的帖子(和索引页)进入/blog目录,这样“/blog”就会出现在URL中。也许我应该使用配置文件中的选项,在/blog/suffix上提供我的帖子和索引?@Rémidoolage我会选择permalink选项。(事实上我就是这么做的)