2015-02-10 16 views
17

index.html` dosyalara `klasör isteklerini eşleşmiyor:Bahar çizme aşağıdaki yapıyla <code>static</code> klasör var

index.html
docs/index.html

Spring Boot, / taleplerini index.html ile doğru şekilde eşler. Ancak, /docs/ isteğini /docs/index.html (/docs/index.html isteği doğru şekilde çalışıyor) ile eşleştirmiyor.

Klasör/alt klasör istekleri uygun index.html dosyalarına nasıl eşlenir?

+0

ben önerdi görünümü denetleyicisi haritalama sorunuza cevap mu? Eğer öyleyse, lütfen kabul edin. Aksi halde lütfen sorununuzu açıklayın ve cevabımı güncellemekten memnuniyet duyarız. – hzpz

cevap

2

Bu, Spring Boot eşlemesini index.html'ye değil, sunucu motorudur (bir karşılama sayfasıdır). Tek bir karşılama sayfası (özellik başına) vardır ve dizin taraması kapsayıcıların bir özelliği değildir.

+5

bu sorunu açıklıyor ama bir çözüm önermiyor bu yüzden bu cevabı kabul edemiyorum –

+1

Kendi dizin tarayıcınızın sunucu uygulaması yazıcısı dışında bir çözüm olduğunu düşünmüyorum. İstersen önerebilir miyim? –

18

el bu işi yapmak için bir görünüm denetleyicisi eşlemesi ekleyebilirsiniz:

@Configuration 
public class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { 

    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/docs").setViewName("redirect:/docs/"); 
     registry.addViewController("/docs/").setViewName("forward:/docs/index.html"); 
    super.addViewControllers(registry); 
    } 
} 

ilk haritalama talep alır /docs (çizgi izleyen olmadan) ise müşteriye bir yönlendirme göndermek için Spring MVC neden olur. /docs/index.html numaralı bağlantıda göreceli bağlantılarınız varsa bu gereklidir. İkinci eşleme, herhangi bir isteği /docs/ iç öğesine (istemciye bir yönlendirme göndermeden) docs alt dizininde index.html'a iletir.

+0

İç içe geçmiş alt klasörlerle birlikte çalışır: 'registry.addViewController ("/v2/docs ") setViewName (" yönlendirme:/v2/docs/");' ve 'registry.addViewController ("/v2/docs/"). ("ileri doğru: /v2/docs/index.html") setViewName; ' –

0

Varsayılan olarak önyükleme gösterisi index.html.

ama index.html statik /kaynak /veya /kamu

örnek olmalıdır:

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-static