Spring页面在Spring启动应用程序中无法正确呈现

时间:2015-01-20 12:44:21

标签: twitter-bootstrap jsp spring-mvc spring-boot

我正在为我的UI使用twitter bootstrap,因此要使JSP文件正确呈现资源文件,如css,字体,图像,js,less,scss在项目中是必需的。所以我将它们添加到src / main / webapp / resources文件夹中。我的JSP页面位于src / main / webapp / WEB-INF / jsp文件夹中。 在application.properties中,我指定如下:

spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp

在运行应用程序时,我能够查看jsp页面,但它没有像一个地方的文本字段那样正确显示,按钮在其他地方显示。 我认为原因是因为JSP没有采用我在资源文件夹中提供的文件。这就是我在JSP页面中引用资源的方法

<link rel="stylesheet"
    href="${pageContext.request.contextPath}/resources/css/bootstrap.min.css">
<link rel="stylesheet"
    href="${pageContext.request.contextPath}/resources/css/bootstrap-theme.min.css">
<link rel="stylesheet"
    href="${pageContext.request.contextPath}/resources/css/bootstrapValidator.min.css">
<link rel="stylesheet"
    href="${pageContext.request.contextPath}/resources/css/font-awesome.min.css">
<script
    src="${pageContext.request.contextPath}/resources/js/jquery-1.11.1.min.js"></script>
<script
    src="${pageContext.request.contextPath}/resources/js/bootstrap.min.js"></script>
<script 
    src="${pageContext.request.contextPath}/resources/js/bootstrapValidator.min.js"></script>
<style type="text/css"> 
</style>
<script>

问题在于页面呈现不当。能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

如果您已将它们放入:

src/main/webapp/resources

然后模板中正确的URL可能是:

/resources/resources/css/bootstrap.min.css

因此,要保留现有的URL,您需要将静态资源上移一级:

src/main/webapp/

...一起摆脱/ resources子目录。

答案 1 :(得分:2)

我们解决这个问题的方式相当容易。在配置中创建addResourceHandlers。文件看起来像这样:

@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {

      registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");

    }

}