为什么要在<a href="{{../dir}}....>这里的dir前加上“../”

来源:6-6 静态资源服务器 06

印斯茅斯调查员

2018-09-01

我通过调试当dir是“config”的时候,这个时候应该下一级文件路径应该是/config/default....,但是实际中页面里显示的是/defau...,这是为什么?

写回答

2回答

Samaritan

2018-09-07

楼下正解

0
1
印斯茅斯调查员
非常感谢!
2018-09-12
共1条回复

夜愿小夜

2018-09-08

假设:

data = {

  title: 'config'

  dir: 'src/config',

  files: ['defaultConfig.js']

}


解析: template(data)

{{#each files}}

<a href="{{../dir}}/{{this}}">{{this}}</a>

{{/each}}


在 tpl 的解析中,标签<a>所在的位置是each内部,而each对files解析的,也就是每一个的<a>对应一个files的元素。

按照常规理解,我取dir的值,在哪里都不应该跟路径有关,因为来自于data这个对象嘛。

但很明显这个handlebars很变态,在data内部也走了相对路径。


具体就是,你在files里面, 通过 ..  到 外层的 data对象,然后获取dir。


同样的,获取title也需要 {{../title}}


经过测试:

data = {

  title: 'config'

  dir: 'src/config',

  files: ['defaultConfig.js'],

  site: {'info':{'name':'imooc'}}

}

获取name则需要:

{{../site.info.name}}


以上只是推断,不是查看handlebars代码得到的。


最后:这个路径关系和老师在前面讲的几个路径关系,完全没有关系。只和handlebars解析有关,个人认为。

3
2
ffeenon
破案了 我自己捅鼓大半天 感谢!
2018-11-18
共2条回复

Node.js入门到企业Web开发中的应用

Node.js是Web应用开发的一个福音,特别适合中小型系统的快速开发!

1580 学习 · 303 问题

查看课程