Golang 如何删除静态服务的最后一个斜杠

我想删除路径中最后一个尾部斜杠,例如:localhost:8080/Login/ --> localhost:8080/Login。在代码中,我使用/login而不是/login/但css和js不起作用,请帮忙!


这是我的代码:


转到文件:


func main() {

    fileServer := http.FileServer(http.Dir("pages"))

    //http.Handle("/Login/", http.StripPrefix("/Login/", fileServer))

    http.Handle("/Login", http.StripPrefix("/Login", fileServer))


    http.ListenAndServe(":8080", nil)

}

HTTP 文件:


<link href="/css/bootstrap/bootstrap-4.3.1.css" rel="stylesheet" />

<script src="/js/bootstrap/bootstrap-4.3.1.js"></script>


慕森王
浏览 137回答 3
3回答

HUH函数

由于您使用的是 CSS 和 JS 文件的根路径,因此就 CSS 和 JS 文件的请求而言,尾部斜杠并不重要。至于重定向到 /Login/:此行为已记录,并附有有关如何防止这种情况的说明:如果子树已注册,并且收到命名子树根但不带尾部斜杠的请求,则 ServeMux 会将该请求重定向到子树根(添加尾部斜杠)。可以通过单独注册不带尾部斜杠的路径来覆盖此行为。因此,如果您不希望重定向,请为 /Login 和 /Login/ 注册相同的处理程序。

炎炎设计

您基本上将前端安装在“/Login”处。但是你的js和css是从“/”请求的所以它们当然不会被加载。您必须:将 css 和 js 引用更改为“/Login/js/....”和“/Login/css/...”但这似乎并不是您真正想要做的或者,将前端安装在“/”处http.Handle("/",&nbsp;fileServer)

杨__羊羊

package mainimport (&nbsp; &nbsp; "fmt")func main() {&nbsp; var s string = "localhost:8080/Login/"&nbsp; fmt.Println(s)&nbsp; for _,i := range s{&nbsp; &nbsp; fmt.Println("hi,test data ->",string(i))&nbsp; }&nbsp; fmt.Println("This string len is ",len(s))&nbsp; fmt.Println("You want ",string(s[0:len(s)-1]))}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go