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