当前位置: 首页 > 知识库问答 >
问题:

从file system Spring Boot Web服务静态资源

鲜于喜
2023-03-14

使用Spring Boot web应用程序,我试图从项目外部的文件系统文件夹中为静态资源提供服务。

文件夹结构类似于:-

          src
             main
                 java
                 resources
             test
                 java
                 resources
          pom.xml
          ext-resources   (I want to keep my static resources here)
                 test.js

Spring配置:-

@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。

提供绝对文件路径有效:-

@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/test/**")
                .addResourceLocations(
                        "file:///C:/Sambhav/Installations/workspace/demo-staticresource/ext-resources/")
                .setCachePeriod(0);
}

如何提供相对位置?绝对路径将使我的生活在构建和部署过程中变得艰难。

共有1个答案

宣意致
2023-03-14

file://是指向文件系统根目录的绝对URL,因此,file:///./ext-resources/意味着Spring Boot正在根目录中的一个名为ext-resources的目录中查找资源。

更新配置,使用file:ext-resources/作为URL。

 类似资料:
  • 前言 一个http请求访问web服务静态资源,一般响应结果有三种情况 访问文本,例如js,css,png,jpg,gif 访问静态目录 找不到资源,抛出404错误 原生koa2 静态资源服务器例子 demo源码 https://github.com/ChenShenhai/koa2-note/blob/master/demo/static-server/ 代码目录 ├── static # 静态资

  • 有时候希望人工管理服务提供者的上线和下线,此时需将注册中心标识为非动态管理模式。 <dubbo:registry address="10.20.141.150:9090" dynamic="false" /> 或者 <dubbo:registry address="10.20.141.150:9090?dynamic=false" /> 服务提供者初次注册时为禁用状态,需人工启用。断线时,将不

  • 每个网站都需要静态资源:图片、样式表、网站图标(favicon)等。在这种情况下,您可以在项目的根目录下创建一个名为 static 的目录。 放入 该目录中的每个文件都将被复制到 生成的 build 文件夹中,并保留目录的层级结构。例如,如果您将名为 sun.jpg 的文件添加到 static 文件夹中,则该文件将被复制到 build/sun.jpg 路径。 这意味着: 对于 baseUrl: '

  • 我们先来看看最简单的本地静态文件服务配置示例: server { listen 80; server_name www.test.com; charset utf-8; root /data/www.test.com; index index.html index.htm; } 就这些?

  • 我从事spring boot 1.3.3的工作。使用JSP作为视图技术发布。 JSP页面、静态资源(如CSS、JS和图像)正在正确加载。但是如何提供txt或xml等静态资源(robots.txt、sitemap.xml) 我的控制器正在处理请求并尝试呈现jsp视图。 一个pplication.java 控制器 application.properties 下面的URL由控制器处理,它呈现home.

  • 我试着设置nginx来服务我的node.js应用程序静态文件。问题是,当我试图得到我的文件时,我的状态是403禁止的。 当我尝试下载一个文件从 /root/appJs/public/css/style.css我写http://sitename.com/css/style.css我retive 403禁忌状态。我已经在一些论坛上寻找解决方案,但没有