我有一个spring boot应用程序,它包含下面结构中的静态资源(+
表示目录,-
表示文件)
+ my-app
+ src
+ resources
+ static
+ v1
+ css
- app.css
- main.js
- index.html
我有包含应用程序包的子目录。默认情况下,Spring会直接在 resources / static 目录下查找 index.html 。在这种情况下,它找不到一个。
我的index.html看起来像这样
<html>
<head>
<script type="text/javascript" src="main.js"></script>
<link type="text/css" href="css/app.css"/>
</head>
<body>
</body>
</html>
我们假设应用程序托管在http://myapp.com
。
我这里有两个问题
当我访问应用程序URL v1/index.html
时,如何让Spring在我的静态资源下查找http://myapp.com
?
如果我通过在ViewControllerRegistry中添加一个视图控制器来加载v1/index.html
,它会在v1目录下加载index.html,但在index.html(main.js&amp ;; CSS / app.css)。
如何告诉Spring从resources/static/v1
而不是resources/static
获取所有资源。
答案 0 :(得分:0)
我在STS中创建了一个基本的Spring Boot项目,并没有任何依赖项。我使用了上面的html示例并将其修改为:
<html>
<head>
<script type="text/javascript" src="main.js"></script>
<link rel="stylesheet" type="text/css" href="/v1/css/app.css"/>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
我创建了目录/src/resources/static/v1
和/src/resources/static/v1/css
,将index.html文件放在../v1目录中。 app.css文件包含以下内容用于测试目的:
h1 {
color:red;
}
这没有对Spring进行任何配置更改。如果您正在使用Thymeleaf,JTwig,JSP ...您可能需要为这些模板引擎添加资源处理程序或调整设置,我无法发表评论,因为我没有使用基于您的示例的模板引擎。 /static
目录中的任何内容都将在没有/static
的情况下被引用。
我希望有所帮助,如果确实如此,请将答案标记为正确答案。