有很多关于spring Boot 不加载静态资源的问题,我几乎读遍了所有的问题,但仍然无法解决这个问题。在这个阶段,我选择不运行spring Boot ,但我仍然想知道问题是什么。我正在使用Eclipse,Java 8和Maven。
我有一个应用程序类,看起来像这样:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
字符串
我创建了一个css文件-src/main/resources/static/style.css
,并从jsp引用了它:
<link href="<c:url value='style.css'/>" rel="stylesheet">
型
405 Error 405 Error 405 Error 405 Error
我认为是正确的,但不确定。感谢所有帮助。
**根据下面的一些评论,这是现在的情况。
我的jsp文件在src/main/resources/application.properties中配置如下:
spring.mvc.view.prefix:/WEB-INF/views/
spring.mvc.view.suffix:.jsp
型
我的Jsp非常简单,位于/WEB-INF/views/home. jsp
<!DOCTYPE html>
<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<link href="public/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
型
我也试着这样链接我的CSS文件:
<link href="style.css" rel="stylesheet" type="text/css"/>
型
我的css文件位于webapp/public/style.css,也非常简单
p {
color: red;
}
型
我的jsp加载,但不是css。我已经运行我的应用程序使用各种方法,包括:
从命令行- java -jar contacts.jar
在eclipse内部- mvn spring-boot:run和mvn tomcat 7:run-war在eclipse内部也可以右键单击Application.class文件并选择Run As -> Java Application。
我正在使用Sping Boot 版本1.4.0.RELEASE
8条答案
按热度按时间9q78igpj1#
CSS Location
把你的静态资源比如css放在
src/main/resources
之外,src/main/resources
用于应用程序资源比如属性文件。我总是把css文件放在
src/main/webapp/assets/css
文件夹下。配置
我使用的是Java config而不是XML,下面的代码片段展示了如何配置Sping Boot 来识别和查找css。
字符串
访问css
<link href="<c:url value="/assets/css/style.css" />" rel="stylesheet">
个pkln4tw62#
字符串
bwntbbo33#
假设您没有禁用**
WebMvcAutoConfiguration
**在**
webapp
目录下创建public
文件夹在您的
JSP
**页面上字符串
假设您在public文件夹中样式化.css,即**
webapp > public > styles.css
**这里有一个文档描述了如何更详细地使用静态内容。
bzzcjhmw4#
默认情况下,Sping Boot 将从名为src/main/resources/static(或/public或只是/resources或/META-INF/resources)的目录中提供静态内容。当您的项目创建时,Sping Boot 将自动提供src/main/resources下的static文件夹。因此,我将所有静态资源存储在static文件夹中。
在你的情况下,我会把一个style.css文件放在这些文件夹中的每一个文件夹中,然后通过逐个删除它们来开始调试过程,直到.
Source:
x1c 0d1x的数据
az31mfrm5#
试着寻找一个控制器,它的RequestMapping带有一个不是GET的http方法,也就是接受你的style.css请求。这可以是任何没有“value”的请求Map。
当我从jetty迁移到spring Boot 时,就发生了这种情况。在旧的jetty解决方案中,静态内容是从不同的servlet提供的。
o2g1uqev6#
我努力将我的静态资源连接到我的jsp页面,这是我最终用来让它与Sping Boot 2. 0一起工作的东西。你可以看到我的属性,也可以看到Map到静态资源(如图像或纯html)时url的样子。
接下来我们需要在application.properties中定义JSP文件的模板前缀和后缀。因此添加:
字符串
**http://localhost:8080/pdx/images/thedocks.jpg**访问src/main/resources/static/images/thedocks.jpg中的静态资源
**http://localhost:8080/pdx/**在 * src/main/resources/static/index.html中加载index.html *
**http://localhost:8080/pdx/css/home.css**在 src/main/resources/static/css/home.css 中加载css类
**http://localhost:8080/pdx/h**加载带有@Controller(“/”)和@GetRequest(“/h”)注解的家庭控制器。
我的jsp页面像这样加载静态图像
型
kwvwclae7#
在您的application.properties文件中添加:
字符串
并确保所有静态文件都位于src/main/resources/static/{css,js,other files} 目录中。
要获取CSS文件,请像这样使用spring uri->
型
然后将其链接为
型
e5nqia278#
由于Eclipse在最初的问题中被提及,因此我链接到这个问题:Java class getResource() with eclipse
有时,当从eclipse运行spring Boot jar时,正确的配置将无法工作。这可以通过添加“main\resources”文件夹来手动运行配置classpath来解决(“运行配置”->“Classpath选项卡”->“用户条目”)