有时候让参数变成可选的会很有帮助。一个经典的例子是当你使用路径名来确定语言环境时 — /fr/...
、/de/...
等等 — 但你同时也想要有一个默认的语言环境。
要实现这个,我们使用双括号。将 [lang]
目录重命名为 [[lang]]
。
此时应用程序会构建失败,因为 src/routes/+page.svelte
和 src/routes/[[lang]]/+page.svelte
都会匹配 /
。删除 src/routes/+page.svelte
。(你可能需要重新加载应用程序来从错误页面中恢复)。
最后,编辑 src/routes/[[lang]]/+page.server.js
来指定默认的语言环境:
src/routes/[[lang]]/+page.server
const greetings = {
en: 'hello!',
de: 'hallo!',
fr: 'bonjour!'
};
export function load({ params }) {
return {
greeting: greetings[params.lang ?? 'en']
};
}
1
2
<h1>hello!</h1>