GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Problemas de rotas com Springboot + AngularJS + html5Mode(true)


#1

Boa tarde pessoal, alguém já passou pelo problema de rotas do AngularJS com o SpringBoot quando esta se trabalhando com $locationProvider.html5Mode(true)?

Consegui corrigir algumas rotas e elas já estão sendo abertas pelo navegador, porem as que exigem que precise passar parâmetros, não sei o porque mas elas não carregam o Bootstrap e o layout fica totalmente zuado.

Aqueles que quiserem mais detalhes do código fonte o mesmo se encontra no link abaixo no Github.


#2

Não entendo como esse forum pode ser assim… mando coisas aqui a mais de 4 anos e ninguém nuca reponde nada, achei que algo tinha mudado mas pelo visto tudo continua na mesma.


#3

Sem postar o problema diretamente fica mais difícil mesmo, maioria nao tem paciência em acessar github. E se escolheu Angular vai ter que penar, é um framework que complica mesmo.


#4

Então o problema é que não carrega o bootstrap quando e passado uma rota com parâmetros, se quiser baixar o projeto no github o mesmo ja esta com maven e npm, então em 5 minutos se configura.

Achei diversos post’s relacionado a esse problemas como por exemplo esse abaixo

Fazendo tudo que a galera menciona nesse link eu consegui concertar 90%, que são as rotas que não existe passagem de parametros, porem as que exigem por algum motivo o springboot cancela tudo e não deixa carregar o css do bootstrap.

Atualizei o cliente com esse erro, porque joguei a toalha não consigo acahar nada que me ajude com isso.


#5

Nao está se complicando a toa? Já que está usando AngularJs, toda parte de CSS, HTML e navegação sao independentes do back-end Spring. Spring nao deveria nem saber que o CSS existe. Na parte do back-end Spring só deveria se preocupar em trafegar dados em json.

Front-end:
https://tableless.com.br/criando-uma-aplicacao-single-page-com-angularjs/

Parte de dados no back-end:



#6

O projeto já esta assim, o problema que ocorre é que o springboot esta interceptando as rotas antes do anuglarjs, tanto é que se eu navegar pelo site através de link’s e não digitando direto a url no browser, tudo funciona perfeitamente.


#7

Vao ter que decidir quem vai controlar a rota de navegacao, AngularJs ou Spring. Se for pelo Spring nem precisa usar AngularJs. Se for pelo AngularJs apenas use Spring pra trafegar dados, seguindo REST.


#8

Obrigado pelo esforço mas não é esse o problema, eu preciso mapear o objeto router no Angularjs, uma alternativa seria talvez eu quebrar meu projeto em 2 ficando somente a API e SITE separados, hoje faço tudo em único projeto e utilizo o thymeleaf somente para apontar para o index dali pra frente é o Angularjs que comanda tudo.


#9

Sim, separar em dois projetos, front-end e back-end. O front será formado por arquivos estáticos HTML/CSS/JS desligados do Java/Spring, que por sua vez terá somente APIs para trafegar os dados em json. Só estou falando nesta separação por voce esta usando Angular, que é para quem faz SPA, senão poderia fazer tudo em Thymeleaf do lado server. Mas como é Angular seu index poderia ser diretamente o index.html do projeto front-end.

Pelo que vi do seu histórico você já passou pelo Flex, então o conceito de separação seria o mesmo, assim como o front era independente do Java, trafegando somente dados através do blazeds.


#10

Sim… saudoso flex… saudades de trabalhar com ele (risos).

Eu comecei a minha arquitetura dessa forma, mas para nao ter que ficar manipulando dois projetos independentes resolvi criar conforme esses tutoriais.

Dessa forma fica bem mais fácil de trabalhar e até esse momento não havia gerado nenhum problema, foi eu atualizar os meus NPM que fui obrigado e começar utilizar o html5Mode, pois ele enfio !# dentro de todas as minhas url como prefixo e bagunçou o projeto por inteiro.