Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当使用@PathVariable时,如何使用spring boot和thymeleaf在首页导入静态资源_Java_Spring_Spring Boot_Frontend_Thymeleaf - Fatal编程技术网

Java 当使用@PathVariable时,如何使用spring boot和thymeleaf在首页导入静态资源

Java 当使用@PathVariable时,如何使用spring boot和thymeleaf在首页导入静态资源,java,spring,spring-boot,frontend,thymeleaf,Java,Spring,Spring Boot,Frontend,Thymeleaf,当我像下面那样使用@RequestMapping时,我可以很好地获得html渲染 @RequestMapping("/demo") public String news() { return "demo"; } 但是当我添加param@PathVariable(“docid”)时,它丢失了所有静态资源 @RequestMapping("/single/{docid}") public String single( @PathVariable("docid") S

当我像下面那样使用@RequestMapping时,我可以很好地获得html渲染

@RequestMapping("/demo")
    public String news() {
        return "demo";
    }
但是当我添加param@PathVariable(“docid”)时,它丢失了所有静态资源

@RequestMapping("/single/{docid}")
public String single( @PathVariable("docid") String docid) {
    return "demo";
}
在浏览器控制台中,它说加载资源失败:服务器响应ststus为404()

我使用它来启动页面,它将有demo.html,没有任何静态资源,但是当我使用它时,它工作得很好

我将import语句更改为th:src=“@{/js/my.js}”,它仍然从localhost:8080/single/js/my.js搜索静态资源,我应该怎么做


Ps:我使用Thymeleaf作为模板

使用URL作为,没有理由得到404。确保在路径(URL)中使用docid值。

将URL用作,并且没有理由获得404。确保您在路径(URL)中使用了docid值。

我解决了它,我将
th:fragment
中的所有导入语句更改为绝对路径。

我解决了它,我将
th:fragment
中的所有导入语句更改为绝对路径。

当您从浏览器发送请求时,是否为“docid”发送了一些值 ? 由于docid是端点URL的一部分,如果您没有为docid指定任何值,您将得到404错误。您用于启动页面的URL是什么,您应该尝试如下操作:http://:port/demo/123其中123是您用于启动页面的docid,它将具有demo.html,而不包含任何静态资源,但是当我使用,它工作得很好。为什么在第一种情况下,您的映射以
/
开始,但在第二种情况下,它没有开始?起初,它们都有
/
,在我搜索了这个问题后,我想这可能是原因。但事实并非如此。当您从浏览器发送请求时,是否为“docid”发送了一些值?由于docid是端点URL的一部分,如果您没有为docid指定任何值,您将得到404错误。您用于启动页面的URL是什么,您应该尝试如下操作:http://:port/demo/123其中123是您用于启动页面的docid,它将具有demo.html,而不包含任何静态资源,但是当我使用,它工作得很好。为什么在第一种情况下,您的映射以
/
开始,但在第二种情况下,它没有开始?起初,它们都有
/
,在我搜索了这个问题后,我想这可能是原因。但事实并非如此。