Как исключить избыточные слизни в URL-адресах из-за структуры маршрутов/макетов?

#svelte #sveltekit

Вопрос:

У меня есть структура проекта:

 __layout.svelte <- requests header nav links in its load function
articles/
    __layout.svelte <- requests list of tags for left sidebar in its load function   provides column layout
    index.svelte <- list of all articles
    u[id].svelte <- list of articles made by specific user and some detailed user info
    [id].svelte <- detail page of specific article
about.svelte
contacts.svelte
 

Итак, URL-адреса выглядят так:

 /articles
/articles/u504
/articles/504
/about
/contacts
 

Как я могу опустить /articles URL-адреса, чтобы они были такими:

 /
/u504
/504
/about
/contacts
 

?

Я пробовал играть, config.kit.vite.server.proxy но, как и ожидалось, это работает только для сервера

Наверное, есть способ манипулировать с manifest.js помощью ?

Ответ №1:

Вместо этого вы могли бы превратить /articles/__layout.svelte файл в компонент, который вы можете поместить внутрь u[id].svelte amp; [id].svelte .

Вы можете использовать слот для достижения этой цели

Комментарии:

1. Я пробовал, функция load() работает только в макетах или страницах, а не в компонентах(

2. Вы могли бы поместить load() внутри u[id].svelte amp; [id].svelte вместо компонента.

3. Хочу, чтобы это было описано один раз. В моем случае действительно было гораздо больше, чем тогда u[id].svelte и [id].svelte

4. Извлеките его в функцию, а затем вызовите ее в обоих случаях.