2
respostas

[Bug] componente Link não funciona em produção

Estou utilizando o framework next js para construir um site, criei uma barra de navegação com os links das paginas do meu site, esta funcionando perfeitamente em desenvolvimento, porem em produção os componentes link não funcionam , oque pode ser? segue o codigo da minha navbar:

"use client";

import {
  HiHome,
  HiUser,
  HiViewColumns,
  HiRectangleGroup,
  HiEnvelope,
} from "react-icons/hi2";
import Link from "next/link";
import { usePathname, useRouter } from "next/navigation";

export const navData = [
  { name: "inicio", path: "/", icon: <HiHome /> },
  { name: "projetos", path: "/projects", icon: <HiViewColumns /> },
  { name: "sobre", path: "/about", icon: <HiUser /> },
  {
    name: "contato",
    path: "/contact",
    icon: <HiEnvelope />,
  },
];

const Nav = () => {
  const pathName = usePathname();
  const router = useRouter();
  function handleClick(path: string) {
    return router.push(path);
  }
  return (
    <nav
      className="absolute flex flex-col items-center xl:justify-center gap-y-4 h-max bottom-0 mt-auto 
    xl:bottom-[2%] z-[50] top-0 w-full"
    >
      <div
        className="flex w-full items-center justify-between gap-x-10 px-4 md:px-40 xl:px-12
        bg-white/10 xl:w-max h-12 backdrop-blur-sm text-3xl xl:text-xl xl:rounded-xl"
      >
        {navData.map((link, index) => {
          return (
            <Link
              prefetch={false}
              className={`${
                link.path === pathName && " bg-accent/30 rounded-full p-1"
              } relative flex items-center group hover:text-accent hover:scale-110 transition-all duration-300`}
              key={index}
              href={link.path}
            >
              <div className="absolute h-10 w-[104px] left-1/2 transform -translate-x-1/2 bottom-[44px] hidden xl:group-hover:flex">
                <div className="bg-white/10 relative flex items-center justify-center w-full h-full rounded-xl">
                  <div className="text-[12px] leading-none font-semibold capitalize">
                    {link.name}
                  </div>
                  <div className="absolute border-solid border-t-white/10 border-t-8 border-x-transparent border-x-[6px] border-b-0.5 -mb-[48px]"></div>
                </div>
              </div>
              <div>{link.icon}</div>
            </Link>
          );
        })}
      </div>
    </nav>
  );
};

export default Nav;

Em produção, quando eu clico no link para ir para outra página

imagem do inpecionar da página na àrea de navegação , fica baixand o conteudo da pagina no network sem parar

2 respostas

Oii, Marcello! Tudo bem?

Geralmente esse erro pode ser ocasionado por configurações erradas, em como o Next.js está lidando com o roteamento.

Como é um projeto externo ao curso, no qual eu não tenho acesso ao contexto do mesmo, peço que analise alguns pontos que podem estar interferindo em seu projeto:

  • No seu código, você está utilizando o atributo href para definir o destino do link, mas o correto é utilizar o atributo to. Caso queira substituir para teste, será href={link.path} por to={link.path}.
  • Reveja se configurou o caminho base basePathcorretamente.
  • Revise o seu ambiente de implantação para estar configurado corretamente.
  • Caso tenha erros no console, é importante se atentar se está recebendo aviso sobre algum erro, assim será mais fácil de identificar o erro.
  • Tenha certeza que aplicou arquivos de rotas correspondentes para cada caminho em seu projeto.
  • Problemas com cachê, limpe-o em seu ambiente de produção e tente acessar novamente.
  • Verifique se possui alguma variável de ambiente configurada de forma diferente na produção, isso pode afetar.

Espero que esses pontos sejam um bom ponto de partida para você. Qualquer dúvida, não hesite em recorrer ao fórum.

Bons estudos, Marcello!

link do portifolio: https://github.com/marcelloNazar/portifolio-marcello tentei tudo, porem esta do mesmo jeito, consegue me ajudar se eu enviar o meu respositorio?