【发布时间】:2016-05-12 07:26:42
【问题描述】:
我是 Golang 的新手。我需要显示图像。我尝试使用 Gorilla/mux。 但我仍然收到错误:404。我的事情可能是我使用mux代码的地方不正确。
主要功能
package main
import (
"net/http"
"mytestsite/handlers"
"log"
"github.com/gorilla/mux"
)
func main() {
r := mux.NewRouter()
r.HandleFunc("/register", handlers.RegisterHandler)
r.HandleFunc("/sucess", handlers.Sucess)
r.HandleFunc("/login", handlers.Login)
r.HandleFunc("/list", handlers.ViewList)
r.HandleFunc("/logout", handlers.Logout)
r.HandleFunc("/edit", handlers.Edit)
r.HandleFunc("/EditnList", handlers.EditnList)
r.HandleFunc("/notvalid", handlers.NotValid)
r.HandleFunc("/delete", handlers.Delete)
r.HandleFunc("/listchoose", handlers.ListChoose)
r.HandleFunc("/email", handlers.SendEmail)
images := http.StripPrefix("/images/", http.FileServer(http.Dir("./frontend/images/")))
r.PathPrefix("/images/").Handler(images)
if err := http.ListenAndServe(":8181", r); err != nil {
log.Fatal("http.ListenAndServe: ", err)
}
}
将数据传递给 html 的函数
func ViewList(w http.ResponseWriter, r *http.Request) {
viewModel:=viewmodels.RegisterViewModel{}
user:=models.User{}
dbResults := user.ViewDB()
//Cookies below
cookieCheck := getCookie(r)
if (cookieCheck != ""){
err:=GetTemplate("list").Execute(w,dbResults)
if err!=nil{
panic(err)
}
} else {
viewModel.ErrorMessage="Please Enter Email Id and Password.."
err:=GetTemplate("login").Execute(w,viewModel)
if err!=nil{
panic(err)
}
}
}
在html文件中的使用
<td><img src="{{.Photo}}" alt="{{.Photo}}" style="width:50px;height:50px;"/></td>
{{.Photo}} 的值通过以下代码存储到 Db:
ctime := time.Now()
uploadedfile := "frontend/images"+ctime.Format("20060102150405")+".jpg"
out, err := os.Create(uploadedfile)
{{.Photo}} 的 SO 值如下所示
frontend/images/20160202171411.jpg
【问题讨论】:
-
图片标签本身是 404 的?还是整个页面?您也没有显示照片的来源。我认为这是您的视图模型的属性?是网址吗? .Photo 的价值是多少?
-
@David Budworth 页面正在加载。图像显示为损坏的图像链接。图片链接来自数据库。当我拍摄 tdate image li
-
(对不起,不小心点击了发布按钮..)当我接受检查元素图像链接时。但是当我尝试打开链接时,它给了我一个 404。链接在图像上传时存储在数据库中。我会尽快添加代码。
-
你正在从前端的任何部分目录运行你的应用程序?
-
另外,刚刚注意到。您创建了一个 mux.NewRouter 但从不将其传递给监听和服务。您目前正在混合使用 gorilla 和 stdlib http muxes
标签: go