Eu sou novo em Java e Spring. Como posso mapear a raiz do meu aplicativo http://localhost:8080/
para uma estática index.html
? Se eu navegar para as http://localhost:8080/index.html
suas obras bem.
Minha estrutura de aplicativos é:
Minha config\WebConfig.java
aparência é assim:
@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
}
Eu tentei adicionar, registry.addResourceHandler("/").addResourceLocations("/index.html");
mas ele falhou.
java
spring
spring-boot
Shoham
fonte
fonte
http://localhost:8080/appName
mas não é o que eu preciso ...Respostas:
Teria funcionado imediatamente se você não tivesse usado a
@EnableWebMvc
anotação. Quando você faz isso, desativa todas as coisas que o Spring Boot faz por vocêWebMvcAutoConfiguration
. Você pode remover essa anotação ou adicionar novamente o controlador de exibição que desativou:fonte
WebMvcConfigurerAdapte
r, mas sem@EnableWebMvc
"index.html
às/
. Mas é possível também fazer com que o navegador realmente altere o URL de/
para/index.html
?/
para/index.html
usar em"redirect:/index.html"
vez de para frente.Um exemplo da resposta de Dave Syer:
fonte
se for um aplicativo de inicialização do Spring.
O Spring Boot detecta automaticamente index.html na pasta public / static / webapp. Se você escreveu algum controlador,
@Requestmapping("/")
ele substituirá o recurso padrão e não exibirá o mesmo, aindex.html
menos que você digitelocalhost:8080/index.html
fonte
fonte
Atualização: Jan-2019
Primeiro, crie uma pasta pública em recursos e crie o arquivo index.html. Use WebMvcConfigurer em vez de WebMvcConfigurerAdapter.
fonte
Se você usar o mais recente
spring-boot 2.1.6.RELEASE
com uma@RestController
anotação simples , não precisará fazer nada, basta adicionar seuindex.html
arquivo naresources/static
pasta:Em seguida, clique no URL http: // localhost: 8080 . Espero que ajude a todos.
fonte
Por dentro
Spring Boot
, eu sempre coloco as páginas da Web em uma pasta comopublic
ouwebapps
ouviews
e as coloco dentro dosrc/main/resources
diretório, como você pode verapplication.properties
também.e este é o meu
application.properties
:assim que você colocar o URL como
servername:15800
e esta solicitação recebida pelo despachante do Servlet ocupado pelo Spring Boot, ele pesquisará exatamente oindex.html
e esse nome será sensível a maiúsculas, como ospring.mvc.view.suffix
que seria html, jsp, htm etc.Espero que ajude alguém.
fonte
O código fonte se parece com -
fonte
Eu tive o mesmo problema. A inicialização do Spring sabe onde estão os arquivos estáticos html.
fonte
Você pode adicionar um RedirectViewController como:
fonte