go - 使用 golang 模板和大猩猩的文件路径不正确
问题描述
所以我想在http://example.com/posts/1上显示我的数据,模板上还有其他元素,如 css 和图像:
<link rel="stylesheet" type="text/css" href="index.css">
<img src="images/logo.png" alt="Logo">
但是,不是从 http://example.com/index.css 加载 css和从http://example.com/images/logo.png加载图像,而是从http://example.com/posts/加载index.css和http://example.com/posts/images/logo.png。
这是代码:
//...
func postsHandler(w http.ResponseWriter, r *http.Request) {
//... Get the data from other functions
t, _ := template.ParseFiles("dist/posts.html")
err = t.Execute(w, requestPostItem)
//.., Handle error if any
}
func main() {
//...
r := mux.NewRouter()
r.PathPrefix(`/audioupload/`).Handler(http.StripPrefix("/audioupload/", http.FileServer(http.Dir("./audioupload/"))))
r.HandleFunc("/posts/{id:[0-9]+}", postsHandler)
r.PathPrefix("/").Handler(http.FileServer(http.FS(dist.WebUI)))
//...
}
我在 dist 文件夹中有我所有的 css 和 html,还有static.go:
//go:embed *
var WebUI embed.FS
文件夹结构:
audioupload
- ...
dist
- index.css
- posts.html
- ...
main.go
解决方案
推荐阅读
- artifactory - 将工件从 6.20 升级到 7.6.2 后出现 404
- multithreading - Azure 函数 ActivityTrigger 和 HttpTrigger 锁
- api - 如何在 PHP 上创建带双引号的变量以发布到 API
- ruby - Ruby fork 进程时如何检测或记录(ubuntu 14.04)?
- java - Android自定义DialogFragment问题
- excel-formula - 如何在excel中组合多个COUNTIF公式
- excel - 在 Vlookup 公式中使用赋值
- next.js - Gatsby 或 NextJS 用于电子商务复杂网站
- svelte - 在苗条上安装美人鱼
- kubernetes-helm - 将字符串转换为 YAML 映射