我正在为我的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>
问题在于页面呈现不当。能帮我解决这个问题吗?
答案 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/");
}
}