Próbuję opracować aplikację z Spring Boot na końcu i Angular 2 na przednim końcu, używając maven.Problemy z obsługą adresów URL za pomocą Spring Boot i Angular 2
Przedni koniec kątowy znajduje się w katalogu projektu src/main/resources/static
.
Po wprowadzeniu adresu URL http://localhost:8080/
w przeglądarce wszystko jest w porządku: mogę uzyskać dostęp do 2 kątowego przedniego końca, a front może się doskonale komunikować z resztą api. Moja nawigacja kątowa 2 działa dobrze: po kliknięciu linku na przednim końcu przechodzę w odpowiednią stronę, a pasek adresu URL przeglądarki pokazuje właściwe rzeczy (np. http://localhost:8080/documents
)
Ale problem jest, gdy próbuję bezpośrednio napisz ten sam adres URL w przeglądarce. Wiosna przejmuje frontowy koniec i mówi, że nie ma mapowania dla /documents
.
Czy istnieje sposób, aby nakazać wiosennemu startowi, aby "wsłuchał się" w adres URL /api/*
i "przekierował" wszystkie pozostałe do interfejsu?
Oto moja Wiosna klasa Kontroler:
@RestController
@RequestMapping("/api")
public class MyRestController {
@Autowired
private DocumentsRepository documentRepository;
@CrossOrigin(origins = "*")
@RequestMapping(value = "/documents/list",
method = RequestMethod.GET,
produces = "application/json")
public Iterable<RfDoc> findAllDocuments() {
return documentRepository.findAll();
}
}
Oto główna klasa aplikacji:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Oto moje app.route.ts:
import { provideRouter, RouterConfig } from '@angular/router';
import { DocumentComponent } from './doc.component';
const routes: RouterConfig = [
{
path: '',
redirectTo: 'documents',
pathMatch: 'full'
},
{
path: "documents",
component: DocumentComponent
}
];
export const appRouterProviders = [
provideRouter(routes)
];
Istnieje sposób słuchania/tylko api/*. Do tego potrzebny jest filtr. – sparrow
Jak mogę to zrobić? Jestem całkiem nowy w tej dziedzinie ... – Eric