【问题标题】:Page display using Spring mvc controller appends endpoint to page resources使用 Spring mvc 控制器的页面显示将端点附加到页面资源
【发布时间】:2020-06-27 03:17:14
【问题描述】:

我有一个 spring MVC 控制器,它返回这样的页面

@Controller
@RequestMapping("/subscriber")
public class SubscriberWebController {
    @GetMapping("/edit/{id}")
    public String getSubscriber(@PathVariable("id") Long id, Model model) {
        model.addAttribute("id", id);
        return "subscriber/manage";
    }

    @GetMapping("/add")
    public String addSubscriber() {
        return "subscriber/manage";
    }
}

问题在于,在加载 manage.html 时,资产是使用 http://localhost:8081/subscriber/vendor/nucleo/css/nucleo.css 而不是 http://localhost:8081/vendor/nucleo/css/nucleo.css 加载的。这会在加载所有页面资源时导致 404。我似乎找不到我做错了什么。

编辑

我的 ApplicationConfiguration 中有此配置,以帮助提供所有静态 CSS 和 JS 文件。

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/**")
            .addResourceLocations("classpath:/static/")
            .setCachePeriod(0);
}

问题依旧

【问题讨论】:

    标签: java spring spring-boot spring-mvc


    【解决方案1】:

    您没有说明如何在 manage.html 中引用 CSS

    如果你希望你的 CSS 从 /vendor/nucleo/css/ 加载,那么把你的 CSS 引用像这样:

    <link rel="stylesheet" href="vendor/nucleo/css/nucleo.css">
    

    并映射到您的供应商包:

    <mvc:resources mapping="/vendor/**" location="/ACTUAL LOCATION/"/>
    

    希望对你有帮助

    【讨论】:

    • 是的,这就是我在 manage.html 中引用我的 css 的方式
    • 感谢您的回答@eugen,我从中得到了启发并解决了我的问题,请在下面的回答中查看详细信息
    • @mikaelovi 那么好!
    【解决方案2】:

    从上面@eugen 的回答中得到启发,我修改了我的网络配置类:

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/")
                .setCachePeriod(0);
    }
    

    在我的 HTML 页面中,我引用了静态资源:

    <link rel="stylesheet" href="/vendor/nucleo/css/nucleo.css">
    

    请注意上面 href 属性中 vendor 前面的“/”。这解决了我的问题

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多