编程语言
首页 > 编程语言> > javascript-把手将{{path}}视为相对链接而不是绝对链接

javascript-把手将{{path}}视为相对链接而不是绝对链接

作者:互联网

我正在使用Metalsmith创建一个以Handlebars为模板的网站.

我创建了一个名为/articles/index.html的存档页面,该页面将/ articles /中的所有文章按时间顺序列出,但是当我单击存档页面中的链接时,它会将我带到/ articles / articles / example-post. html代替/articles/example-post.html.如何使我进入URL的绝对版本而不是相对版本?

我用来生成档案的Handlebars脚本是:

{{#if archive}}
  <ul>
    {{#each collections.article}}
    <li><a href={{path}}>{{date}} - {{title}} {{description}}</a></li>
    {{/each}}
  </ul>
{{/if}}

{{path}}元数据由Metalsmith自动生成.当我在生成的文件上调用console.log时,得到的输出如下:

'/articles/example-post/index.html':
  { title: 'Example Post',
  ...
  path: 'articles/example-post'
  ...
  }

我的主页上有一个几乎相同的设置,其工作原理完全相同.知道如何在子文件夹中运行它吗?

编辑:好的,我应该清楚:我意识到{{path}}是相对链接,而不是绝对链接.我的问题应该是:“当我只使用{{path}}并且是相对的时,如何使它正常工作?是否应该访问另一个变量以产生正确的链接?或者是否有一个如何编辑{{path}}以使其指向正确的文件?据我所知,无法在Handlebars中编辑变量,因此无法在链接上附加’/’或去除开头的“文章/”.

解决方法:

通常,最好使用相对URL而不是绝对URL,因此您的应用程序不会绑定到该应用程序环境.

但是,如果您需要使用绝对值,则可以使用/ path / to / somewhere而不是path / to / somewhere

它适用于您的首页而不是其他页面的原因是,当您位于首页时,相对路径和绝对路径之间没有区别.因此/ root时/ location / path和location / path相同.

这是将/放在前面的另一种选择:

< a href =“ / posts /{{../ permalink}}#{{id}}”> {{title}}< / a>

标签:handlebars-js,metalsmith,javascript
来源: https://codeday.me/bug/20191108/2009768.html