映射是什么?ts文件,以及如何在Tritium中设置它



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

映射。脚本目录中的Ts文件是匹配特定页面的位置。导入的文件格式为html。并允许我们说"当某个页面匹配时,进行以下转换"。

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

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

每当你开始在一个新的页面上工作时,你需要设置一个新的"地图"。

First:匹配唯一路径

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

& lt;>/home/<>用正则表达式指定"home"部分。必要时也可以使用普通字符串:

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

一个网站的首页可能真的不包含home这个词。大多数主页都是没有任何匹配器的URL。一个更好的字符串匹配器可以是:

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

或者使用regex:

with(/index|^/$/) {

可以看到,<映射文件的>with()<>函数是Regex知识真正派上用场的地方。查看我们关于正则表达式的简短指南。有时会更简单,比如<>(/search/)<> .

请记住尽可能提供URL中最独特的方面。如果两个<>with()<>函数匹配相同的URL,那么将使用映射文件中第一个出现的URL。如果您无法为不同的页面类型找到唯一的URL匹配器,您可能必须通过其他方式进行匹配。

为什么使用正则表达式?

使用字符串似乎比使用regex匹配器更容易。然而,regex在匹配url方面提供了更多的灵活性。

例如,一个站点可以在其产品页面url中使用一串数字。使用普通的字符串匹配器是不实际的——你必须列出网站上所有项目的所有可能的数字。一种更简单的方法是使用regex说,"如果有一个5位数的字符串,继续!"(匹配5位数字的代码:<>/d{5}/<>。

秒:记录匹配

在匹配特定路径时,还应该使用<>log()<>语句,以便您确切地知道要导入的是什么。日志语句将在命令行窗口中打印,因此您可以查看正则表达式是否准确匹配您的路径。

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

第三步:导入文件

最后,使用<>@import<>函数,以包含特定于页面的氚文件。

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

最新更新