, js <script> 路径以 "/foobar/"开头-6ren"> , js <script> 路径以 "/foobar/"开头-我正在尝试为我的路由器使用标准的 Go http 包。 在我的 main.go 中开始: func main() { mux := http.NewServeMux() fs := h-6ren">
gpt4 book ai didi

go - 处理url "/foobar/"替换css , js <script> 路径以 "/foobar/"开头

转载 作者:数据小太阳 更新时间:2023-10-29 03:10:58 28 4
gpt4 key购买 nike

我正在尝试为我的路由器使用标准的 Go http 包。

在我的 main.go 中开始:

func main() {
mux := http.NewServeMux()

fs := http.FileServer(http.Dir("static"))
handler := http.StripPrefix("/static/", fs)
mux.Handle("/static/", handler)

mux.HandleFunc("/my-example-url/", FooHandler)
}

在 FooHandler() 里面我有一些 println()

func FooHandler(w http.ResponseWriter, r *http.Request) {
println("r.URL.Path->",r.URL.Path)
//more business logic
}

// output:

r.URL.Path-> /my-example-url/static/css/normalize.css
r.URL.Path-> /my-example-url/static/libs/xss.js

所以 url 的初始部分不应该存在(/my-example-url/部分)

我认为这只会在我尝试为带有尾部斜杠的端点提供服务时发生,例如:

mux.Handle("/my-example-url/", handler)

我的最终目标是根据我尝试在尾部斜杠后传递到 url 中的 id 获取一些资源,例如:

http://localhost:3001/my-example-url/bb98610

最佳答案

在触发静态资源请求的 html 文件中,您很可能使用相对路径而不是绝对路径,这会导致浏览器将该相对路径附加到地址栏中已有的路径。

例如:

<link href="static/css/normalize.css" rel="stylesheet">

将由浏览器转换为 /my-example-url/static/css/normalize.css

相反,您想使用(注意前导斜线):

<link href="/static/css/normalize.css" rel="stylesheet"> 

关于go - 处理url "/foobar/"替换css <link>, js &lt;script&gt; 路径以 "/foobar/"开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51873043/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com