2014-07-02 17 views
7

Uygulamam, arka uçta ön ve arka çerçeve üzerinde omurga kullanılarak oluşturulmuştur. Tek bir html uygulamasıdır. Rotalar omurgası tarafından işlenir, bu yüzden bir sonraki yapısına sahip bir arka uç rota:Jokey denetleyicisi rotası kullanılırken statik içeriği sunma yayı

@RequestMapping(value="/**", method=RequestMethod.GET) 
public String Pages() 
{ 
    return "index"; 
} 

benim index.html'ye şeyi işaret etmek. Buradaki statik içerik dosyalarının da bu rotayı işaret ettiği ve bunu istemediğidir. config WebMvcConfigurerAdapter için statik içerik için addResourceHandler yöntemini geçersiz kılarak denedim, ancak çalışmaz.

@Configuration 
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/js/**").addResourceLocations("/resources/js"); 
    } 
} 

Her rotayı index.html haricinde/js/** ve/assets/** olarak nasıl işaret edebilirim?

ilk şey /** eşlenmiş Denetleyiciniz yöntemi herhangi bir kaynak istekleri üzerinde öncelik alacak olmasıdır size

cevap

6

ederiz. Bunu, ResourceHandlerRegistry'un önceliğini artırarak ele alabilirsiniz. StaticResourceConfiguration arasında addResourceHandlers yönteminde registry.setOrder(Ordered.HIGHEST_PRECEDENCE) çağrısı ekleyin:

@Configuration 
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.setOrder(Ordered.HIGHEST_PRECEDENCE); 
     registry.addResourceHandler("/js/**").addResourceLocations("/resources/js"); 
    } 
} 

ikinci şey varsayılan olarak, Bahar Boot varsayılan one mapped to /** and one mapped to /webjars/** tarafından sizin için iki kaynak işleyicileri yapılandırır, olmasıdır. Yukarıda açıklanan değişiklik nedeniyle, artık denetleyicinizdeki /** ile eşleştirilen yönteme göre öncelikli olacaktır. Bu aşmak için, application.properties bir ayarla varsayılan kaynak kullanımı kapatmak gerekir:

spring.resources.addMappings=false 
+1

Ben senin çözüm denedim ama her isteği üzerine 404 hatası alıyorum ... Evet, eminim application.properties o yüklendi –

+0

Bu, istek eşlemelerinizin yanlış yapılandırıldığını gösterir. Başlangıçta giriş yapmışlar. Neyin yanlış olduğunu anlamak için çıktıya bakmanızı tavsiye ederim. –

İlgili konular