【问题标题】:Relative Links in JekyllJekyll 中的相对链接
【发布时间】:2014-12-12 07:38:02
【问题描述】:

Jekyll 中的链接有点问题。

例如,我在文件夹中有一个帖子:

file:///C:/Users/My%20Name/Documents/jekyll_site/2014-10-25-Workshop.html

当我使用jekyll build 时,帖子被插入到这个文件夹中: file:///C:/Users/My%20Name/Documents/jekyll_site/_site/2014/10/25/Workshop.html

在帖子模板中,我使用这个简单的代码转到下一页或上一页:

{% if page.previous.url %}  
<p class="previousEntry blueButton"> <a href="{{page.previous.url}}">&#60;&#60; Go to older entry</a></p>
{% else %}
<p class="previousEntry blueButton">&#60;&#60;  Go to older entry</p>
{% endif %}

当我运行jekyll serve 时,http://localhost:4000 看起来一切正常, 但是,当我查看jekyll build 之后生成的代码时,它看起来像这样:

<p class="previousEntry blueButton"> <a href="/2013/04/12/FirstVisit.html">&#60;&#60;   Go to older entry</a></p>
<p class="nextEntry blueButton"><a href="/2014/07/09/OfficialMeeting.html">Go to newer entry &#62;&#62;</a></p>
<p class="backToNews blueButton"><a href="news.html">Go back to main news page</a></p>

而且,例如,当我点击“转到旧条目”时,我被定向到 file:///C:/2013/04/12/FirstVisit.html(这会导致“找不到此页面”页面)而不是 file:///C:/Users/My%20Name/Documents/jekyll_site/_site/2013/04/12/FirstVisit.html(即页面的当前位置)

当我尝试将其上传到网络服务器时,这会导致问题吗?如果是这样,我该如何制作,以便在我将其上传到网络服务器后,此相对链接会将用户定向到我想要的位置?

【问题讨论】:

标签: jekyll liquid


【解决方案1】:

/folder/file.html 这样的相对链接是相对于主机的,比如http://host.tld

host + relative path = http://host.tld/folder/file.html.

由于Jekyll serve 将主机的根文件夹设置为file:///C:/somePath/_site/,这最终解决了

root folder + relative path = file:///C:/somePath/_site/folder/file.html,这是正确的道路。

这里说的是文件协议(file://),这里的“主机”是file:///C:,相对路径/2013/04/12/FirstVisit.html解析为

host + relative path = file:///C:/2013/04/12/FirstVisit.html 导致找不到页面。

这里真正的问题是您正在谈论从文件资源管理器打开的页面。您点击了一个使用文件协议而不是 http 协议打开的 html 页面。

通过在浏览器中粘贴此 URL,而不是单击文件资源管理器中的页面,确保使用 http://localhost:4000 打开您的网站。

【讨论】:

    【解决方案2】:

    我执行了以下操作以使其在本地工作:
    - 双击索引并观察浏览器中的地址栏。对于我当前的项目,它是:file:///C:/Users/user/Desktop/blog/blog/_site/index.html
    - 打开_config.yml 文件并将其从baseurl:""(与index.html 结尾部分之前的地址栏中的内容完全相同)更改为baseurl:"file:///C:/Users/user/Desktop/blog/blog/_site/"
    - 在终端中再次建站

    这在本地工作。当我将网站上传到我的虚拟主机上的文件夹时,我会再次更改 baseurl 以类似的方式。

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 1970-01-01
      • 2014-05-08
      • 2018-05-17
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      相关资源
      最近更新 更多