#nextjs #programowanie Uczę się nexta i nie do końca jeszcze ogarniam jak to wszystko działa. W folderze pages mam plik cart.tsx do wyświetlania koszyka ecommerce i z tym nie mam problemu ale nie wiem jaki jest prawidłowy sposób na podmianę url w pasku wyszukiwania tak żeby zamiast localhost/cart było wyświetlane localhost/koszyk.
Aktualnie w pliku [...slug].tsx dodałem prostego ifa, że jeśli slug === 'koszyk' to zwracam stronę cart.tsx tak jakbym zwracał normalny komponent ale jakoś to mi tak źle wygląda
Wcześniej próbowałem w next.config.js dodać redirects/rewrites ale wtedy miałem taki efekt że po wejściu na localhost/koszyk przez chwilę było widać localhost/cart i dopiero potem localhost/koszyk przy czym ta strona tak naprawdę lądowała się 3 razy (koszyk>cart>koszyk)
Kamil.js

@dupaXDDDDD z tego co kojarze routing w next bazuje na strukturze folderu pages i plików, które zawiera.

Najprosciej byloby zmienic nazwe cart.tsx na koszyk.tsx. Czemu takie rozwiazanie u ciebie odpada?

dupaXDDDDD

@Kamil.js Zmiana nazwy na koszyk to bardziej taki przykład, po prostu chcę mieć jakąś opcję zmiany url w zależności od kraju w którym strona jest użytkowana. Przykładowo jak strona byłaby robiona na Hiszpanię to chciałbym mieć w url "carro" na Włochy "carrello" etc. Nazwy pliku nie chcę zmieniać bo wolę wszystkie nazwy trzymać po angielsku

zmora

@dupaXDDDDD Najprostszy sposób to utworzenie pliku z koszykiem per język w pages: np. pages/koszyk.tsx, pages/cart.tsx i importowanie w tych plikach komponentu strony, który będzie wspólny dla wszystkich tych stron np. CartPage.tsx. Tam będziesz na bazie pathname decydował jaki jest język i wyświetlał odpowiednie rzeczy na stronie.

zmora

@dupaXDDDDD Druga opcja to middleware, ale nie wiem gdzie hostujesz to nawet o tym nie wspominamn bo mój sposób z wyżej jest najszybszy chyba w zbudowaniu zadziała nawet dla npm next export i deployu static files gdziekolwiek. Czyli nie wymaga ciągłego trzymania procesu node na serwerze (next start).

Kamil.js

@dupaXDDDDD Osobiście zrobiłbym po prostu nazwy stron w języku angielskim i używał ich niezależnie od wybranego języka. Routing w kilku językach tylko komplikuje całą sprawę, a dla użytkownika wychodzi praktycznie na to samo - nie będzie przecież ręcznie modyfikował linków

Zaloguj się aby komentować