【发布时间】:2015-04-17 20:12:18
【问题描述】:
使用 Spring Boot Web 应用程序,我尝试从项目外部的文件系统文件夹中提供静态资源。
文件夹结构如下:-
src
main
java
resources
test
java
resources
pom.xml
ext-resources (I want to keep my static resources here)
test.js
弹簧配置:-
@SpringBootApplication
public class DemoStaticresourceApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(DemoStaticresourceApplication.class, args);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/test/**").addResourceLocations("file:///./ext-resources/")
.setCachePeriod(0);
}
}
在我的浏览器中点击“http://localhost:9999/test/test.js”会返回 404。
我应该如何配置 ResourceHandlerRegistry 以提供上述“ext-resources”文件夹中的静态资源?
我应该能够为开发/生产环境打开/关闭缓存。
谢谢
更新 1
提供绝对文件路径有效:-
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/test/**")
.addResourceLocations(
"file:///C:/Sambhav/Installations/workspace/demo-staticresource/ext-resources/")
.setCachePeriod(0);
}
如何提供相对位置?在构建和部署过程中,绝对路径会让我的生活变得艰难。
【问题讨论】:
-
你试过绝对路径吗? (也许您的网址中只有一个
/:)) -
绝对路径有效。请参阅更新的问题。有没有办法提供相对路径?
-
构建它 :) 例如File("ext-resource").getAbsoluteFile().toURI... 检查 javadoc 的语法是否正确