什么是mappings.ts文件以及如何在Tritium中设置?

时间:2013-04-07 03:36:23

标签: regex path mapping moovweb tritium

我正在使用Moovweb SDK并使用Tritium。我希望我的移动网站的行为类似于我的桌面网站。我有不同的网址指向我的主页。我应该使用正则表达式吗?一个共同点?什么是匹配路径的最佳语法?

1 个答案:

答案 0 :(得分:4)

scripts目录中的mappings.ts文件是特定页面匹配的位置。该文件以html.ts导入,并允许我们说“当某个页面匹配时,进行以下转换。”

大多数项目已经生成了映射文件。一个简单的布局就是这样:

match($path) {
  with(/home/) {
    log("--> Importing pages/homes.ts in mappings.ts")
    @import pages/home.ts
  }
}

每次开始处理新页面时,都需要设置新的“地图”。

首先:与唯一路径匹配

上面的Tritium匹配主页的路径。路径是域之后的URL位。例如,在www.example.com/search/item中,“www.example.com”是域,“search / item”是路径。

&lt; >/home/<&gt;用正则表达式指定“home”部分。如有必要,您还可以使用纯字符串:

使用( “家”) 如果Tritium与匹配器匹配路径,它将导入主页。

网站的主页可能实际上并不包含单词home。大多数主页都是没有任何匹配器的URL。一个更好的字符串匹配器可能是:

match($path) {
  with ("/")
}

或者,使用正则表达式:

with(/index|^\/$/) {

如您所见,&lt; >with()<&gt;映射文件的功能是正则表达式的知识真正派上用场的地方。查看我们的正则表达式简短指南。有时它会更简单,例如&lt; >(/search/)<&gt;。

请记住尽可能提出URL的最独特方面。如果两个&lt; >with()<&gt;函数匹配相同的URL,然后将使用映射文件中首先出现的URL。如果找不到针对不同页面类型的唯一URL匹配器,则可能必须通过其他方式进行匹配。

为什么要使用正则表达式?

使用字符串而不是正则表达式匹配器似乎更容易。但是,正则表达式为匹配URL提供了更大的灵活性。

例如,网站可以在其产品页面网址中使用一串数字。使用普通的字符串匹配器是不切实际的 - 您必须列出网站上所有项目的所有可能数字。一种更简单的方法是使用正则表达式来说,“如果有一个5​​位数的字符串,继续!” (匹配5位数的代码:&lt; >/\d{5}/<&gt;。)

第二:记录比赛

匹配特定路径时,您还应使用&lt; >log()<&gt;语句,以便您确切知道导入的内容。日志语句将打印在命令行窗口中,以便您可以查看正则表达式是否与路径准确匹配。

match($path) {
  with(/index|^\/$/) {
    log("--> importing pages/home.ts in mappings.ts")
  }
}

第三:导入文件

最后,使用&lt; >@import<&gt;功能包括页面特定的氚文件。

match($path) {
  with(/index|^\/$/) {
    log("--> importing pages/home.ts in mappings.ts")
    @import pages/home.ts
  }
}