1

Я создал образец Spring проекта MVC REST Maven с следующей структурой папок Folder structureКак настроить Servlet Mapping и Resource Handler в Spring MVC

конфигурацию ResourceHandlerRegistry следующим

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.raju.spring_app") 
public class RootConfiguration extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static_res/*").addResourceLocations("/WEB-INF/html/static_res/"); 
    } 
//Other methods 
} 

отображения сервлета следующим

public class HelloWorldInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected String[] getServletMappings() { 
     return new String[] { "/", "/static_res/*" }; 
    } 
    //Other Methods 
} 

Проблема возникает, когда я пытался получить доступ к ресурсу http://localhost:8080/spring4_rest_angular_demo/static/css/app.css

У меня ошибка 404. Я хочу сохранить эту структуру папок, чтобы получить предложения css IntelliSense в файле index.jsp.

<link href="static_res/css/app.css" rel="stylesheet"></link> 
+0

Благодаря @BalusC для коррекции. – Raju

ответ

1

Несколько исправлений:

Replace

return new String[] { "/", "/static_res/*" };

с

return new String[] { "/" };

и

registry.addResourceHandler("/static_res/*")

с

registry.addResourceHandler("/static_res/**")

Кроме того, правильный путь

http://localhost:8080/spring4_rest_angular_demo/static_res/css/app.css

и не

http://localhost:8080/spring4_rest_angular_demo/static/css/app.css

+0

Спасибо @Bnrdo. Это сработало. – Raju

0

С весны 3.0.4.RELEASE и выше вы можете использовать

<mvc:resources mapping="/resources/**" location="/public-resources/"/> 

Как видно из http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources

Кроме того, вы должны избегать страниц в WEB-INF. Поместите папку с html/css/js выше в иерархии под папкой веб-приложения. Как правило, в WEB-INF должны быть только файлы конфигурации xml.

+1

1) Он использует эквивалент Java для кода, который вы отправили. 2) Вы должны размещать ресурсы вне WEB-INF, но JSP должны оставаться в папке WEB-INF. Таким образом, клиент не будет напрямую доступен клиенту - он должен обслуживаться контроллером. – Bnrdo

Смежные вопросы