我正在使用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/)<
> . 映射文件的CC_2>
请记住尽可能提供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
}
}