spring引导:使用可执行jar时找不到静态资源

ndasle7k  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(339)

我的情况:资源目录:

--resources
  -- static
    -- css
      -- a.css
      -- b.css
    -- js
      -- aa.js
      -- bb.js

  -- templates
    -- index.html

index.html部分代码:

<link href="css/a.css" rel="prefetch">
<link href="css/b.css" rel="prefetch">
<link href="js/aa.js" rel="prefetch">
<link href="js/bb.js" rel="prefetch">

在EclipseIDE中,当我启动应用程序时,index.html将被正确呈现,并且可以获取js/css。当我在jar中打包并启动“java-jar.jar”时,找不到js/css。
怎么会?
我尝试了一些解决方案,但没有成功:
答。我在application.yml中添加了以下配置

spring:
  resources:
    static-locations: classpath:/static/

不起作用
b。添加此配置

@Configuration
public class WebConfig implements WebMvcConfigurerAdapter {

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {

    registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

}

不起作用
c。加载项pom.xml

<resources>
            <resource>
                <directory>src/main/resources/static/</directory>
                <filtering>true</filtering>
                <targetPath>META-INF/resources</targetPath>
            </resource>
</resources>

不起作用。
我检查静态目录是否已打包到jar中,jar目录如下所示:

-- xxx.jar
  -- BOOT-INF
    -- static
      -- css
        -- a.css
        -- b.css
      -- js
        -- aa.js
        -- bb.js

有人知道怎么解决吗?

flvlnr44

flvlnr441#

也许这条路错了。
使用href=“/css/a.css”代替href=“css/a.css”
/在路的开头。

相关问题