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

嵌套/前缀控制器的Spring boot静态内容

松博耘
2023-03-14

我使用Spring Boot2.0.2和Freemarker作为我的web应用程序。我的webapp的静态内容无法加载嵌套/前缀控制器。

/src/main/resources/static/js
/src/main/resources/static/images
/src/main/resources/static/css
@RequestMapping(value = "/userProfile", method = RequestMethod.GET)
public ModelAndView getUser(@ModelAttribute("model") ModelAndView model,@RequestParam("userId") String userId) {

    UserProfile userProfile = userService.findById(userId);
    model.addObject("userProfile", userProfile);
    model.setViewName("userDetails");
    return model;
}

  userDetails.ftl is located at /src/main/resources/templates/userDetails.ftl
https://localhost:8443/users/js/saveUser.js -- 404
(Please note "users" in the URL while trying to load static content)

@RequestMapping(value = "/user/profile", method = RequestMethod.GET)
public ModelAndView getUser(@ModelAttribute("model") ModelAndView model,@RequestParam("userId") String userId) {

    UserProfile userProfile = userService.findById(userId);
    model.addObject("userProfile", userProfile);
    model.setViewName("userDetails");
    return model;
}
<link rel="stylesheet" type="text/css" href="css/homepage.css">
<link rel="stylesheet" type="text/css" href="css/user-profile-display.css">
<script type="text/javascript" src="js/saveUser.js}"></script>
<script type="text/javascript" src="js/authenticate.js}"></script>

spring Boot:将REST与静态内容分离

如有任何帮助,我们将不胜感激。

共有1个答案

左丘源
2023-03-14

你使用的是相对路径。

因此,如果浏览器地址栏中显示的当前URL是http://somehost/userprofile,则相对于http://somehost/解析相对路径css/homepage.css,因此请求被发送到http://somehost/css/homepage.css,这可以正常工作

如果浏览器地址栏中显示的当前URL是http://somehost/user/profile,则相对于http://somehost/user/解析相对路径CSS/homepage.CSS,因此请求被发送到http://somehost/user/CSS/homepage.CSS,这不起作用,因为这不是CSS资源的URL。

使用绝对路径:

href="/css/homepage.css"

这基本上就像硬盘上的路径一样工作。如果您在director/home/tim中,并执行less foo.txt,它将显示文件/home/tim/foo.txt。如果执行less/foo.txt,它将显示文件/foo.txt

 类似资料:
  • Java FXML文档要求创建两个变量,如下所示: 什么决定控制器变量名?是否总是只有include id后跟“controller”?

  • 目前,我正在使用一个使用开放Api规范的api,该规范是使用斯瓦格生成的。在 API 中有多个终结点,例如 。这会导致代码生成生成一个客户端,该客户端仅使用数字列出方法。 最好有一个名为和。(或任何区别他们的东西) (如何)使用我的nswag配置实现这一点?我也可以改变OpenApi json的生成 我的 nswag 文件如下所示: 我的swagger文件看起来像这样

  • 我无法访问静态内容(angular app),甚至无法访问简单的索引。来自spring boot的html文件。我一直收到404错误。Spring没有为我提供这些静态文件。自从升级到Spring Boot 2.2.4后,我就遇到了这个问题。我必须升级以应对Zip64问题。 我的application.properties里有这样一句话: 我也有自己的staticResourceConfigurat

  • 问题内容: 我试图在主布局( main.fxml )中包含controller()。但是我收到以下错误: main.fxml中的行: 我选择的issue.fxml: 输入: 据我了解,它现在可以注入对象,但是我需要。我当前的实现方式有什么问题? 问题答案: 将追加到元素中指定的位置以获取将控制器注入到的字段的名称。因此,它应该是: 要么 注入到不带后缀的字段的值是为所创建的值,即为所包含的fxml

  • 使用控制器工厂的问题: 到目前为止,我最好的方法是使用Stephen Chin方法连接顶层控制器。 对于有多个bean实例的情况,父控制器将通过@autowire/@qualifer获取对特定bean的引用,然后在相应的控制器上设置。 下一级控制器也可以通过在顶层控制器上公开它们并调用autowire()来连接 有没有使用控制器工厂机制,这样我就可以在spring上下文中定义控制器,以便更容易地将

  • 问题内容: 我正在尝试使用SceneBuilder用JavaFX构建一个简单的GUI,在这里我使用MenuItem(在中)选择一个根文件夹。然后,该文件夹的内容会在TextArea中列出,然后再次包装在TabPane中(,是嵌套的FXML,其中包括)。 我以这篇文章为起点来习惯MVC。不幸的是,由于我没有明确调用它,所以我不知道如何使嵌套的FXML侦听或绑定到外部FXML。现在,我只是停留在标签中