【发布时间】:2013-12-02 13:47:17
【问题描述】:
我是 Spring 框架和 Spring Boot 的新手。
我已经实现了一个非常简单的 RESTful Spring Boot Web 应用程序。
您可以在另一个问题中看到几乎完整的源代码:Spring Boot: How to externalize JDBC datasource configuration?
app如何服务外部静态HTML、css js文件?
例如,目录结构可能如下:
MyApp\
MyApp.jar (this is the Spring Boot app that services the static files below)
static\
index.htm
images\
logo.jpg
js\
main.js
sub.js
css\
app.css
part\
main.htm
sub.htm
我已经阅读了构建包含静态 HTML 文件的 .WAR 文件的方法,但由于即使对单个 HTML 文件进行修改,它也需要重新构建和重新部署 WAR 文件,因此该方法是不可接受的。
由于我对 Spring 的了解非常有限,因此最好给出准确而具体的答案。
【问题讨论】:
-
什么是不工作的? /static 中的类路径资源默认作为静态资源提供(也在 /public 和其他几个地方),因此您应该能够运行您的应用并加载 /css/app.css。
-
@DaveSyer 实际上,当我在 MyApp 目录中运行 MyApp.jar 时,我发现它有效。我在阅读 org.springframework.boot.context.embedded.AbstractEmbeddedServletContainerFactory 的源代码时验证了它。它在 COMMON_DOC_ROOTS 中有“静态”。 (见github.com/spring-projects/spring-boot/blob/master/spring-boot/…)但是我找不到任何关于它的文档,所以我认为在WAR文件中包含静态文件是唯一的方法。
-
@DaveSyer 而且我想将静态文件的目录更改为我想要的任何位置,无论类路径或当前目录如何。我的问题的目录结构只是一个示例(框架意外支持)。于是我又发了一个问题,换个角度来看问题。 (见stackoverflow.com/questions/20069130/…)
标签: spring tomcat spring-boot