[英]What is the mappings.ts file and how should it be set up in Tritium?
我正在使用Moovweb SDK和Tritium。 我希望我的移動網站的行為類似於我的桌面網站。 我有指向我主頁的不同URL。 我應該使用正則表達式嗎? 一個共同的要素? 匹配路徑的最佳語法是什么?
腳本目錄中的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”是路徑。
< >/home/<
>用正則表達式指定“ home”部分。 如果需要,您還可以使用純字符串:
with(“ home”)如果Tritium將路徑與匹配器匹配,它將導入主頁。
網站的首頁實際上並不包含“家”這個詞,這很可能是事實。 大多數首頁是沒有任何匹配項的URL。 更好的字符串匹配器可以是:
match($path) {
with ("/")
}
或者,使用正則表達式:
with(/index|^\/$/) {
如您所見,映射文件的< >with()<
>函數是真正可以使用Regex的地方。 查看我們關於正則表達式的簡短指南。 有時會更簡單,例如< >(/search/)<
>。
切記要想出URL中最獨特的方面。 如果兩個< >with()<
>函數匹配相同的URL,則將使用映射文件中最先出現的那個。 如果找不到用於不同頁面類型的唯一URL匹配器,則可能必須通過其他方式進行匹配。
為什么使用正則表達式?
使用字符串而不是使用正則表達式匹配器似乎更容易。 但是,正則表達式在匹配URL方面提供了更大的靈活性。
例如,站點可以在其產品頁面URL中使用數字字符串。 使用普通的字符串匹配器不切實際-您必須列出站點上所有項目可能的所有數字。 一種更簡單的方法是使用正則表達式說:“如果有5位數字的字符串,請繼續!” (用於匹配5位數字的代碼:< >/\\d{5}/<
>。)
第二:記錄比賽
匹配特定路徑時,還應使用< >log()<
>語句,以便確切了解要導入的內容。 log語句將打印在命令行窗口中,因此您可以查看正則表達式是否與您的路徑精確匹配。
match($path) {
with(/index|^\/$/) {
log("--> importing pages/home.ts in mappings.ts")
}
}
第三:導入文件
最后,使用< >@import<
>函數來包含特定於頁面的file文件。
match($path) {
with(/index|^\/$/) {
log("--> importing pages/home.ts in mappings.ts")
@import pages/home.ts
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.