html/template: "movie/index.html" is undefined
来源:4-3 Iris框架入门---快速入门案例
Quincy515
2019-09-03
目录结构
├── datamodels │ └── movie.go ├── main.go ├── repositories │ └── movie_repository.go ├── services │ └── movie_services.go └── web ├── controllers │ └── movie_controllers.go └── views └── movie └── index.html
文件datamodels/movie.go
package datamodels
type Movie struct {
Name string
}文件repositories/movie_repository.go
package repositories
import "goland/project/datamodels"
type MovieRepository interface {
GetMovieName() string
}
type MovieManager struct{}
func NewMovieManager() MovieRepository {
return &MovieManager{}
}
func (m *MovieManager) GetMovieName() string {
// 模拟赋值给模型
movie := &datamodels.Movie{Name: "视频"}
return movie.Name
}文件services/movie_services.go
package services
import (
"fmt"
"goland/project/repositories"
)
type MovieService interface {
ShowMovieName() string
}
type MovieServiceManager struct {
repo repositories.MovieRepository
}
func NewMovieServiceManager(repo repositories.MovieRepository) MovieService {
return &MovieServiceManager{repo: repo}
}
func (m *MovieServiceManager) ShowMovieName() string {
fmt.Println("获取到的视频名称为: " + m.repo.GetMovieName())
return "获取到的视频名称为: " + m.repo.GetMovieName()
}文件web/controllers/movie_controllers.go
package controllers
import (
"goland/project/repositories"
"goland/project/services"
"github.com/kataras/iris/mvc"
)
type MovieController struct{}
func (c *MovieController) Get() mvc.View {
movieRepository := repositories.NewMovieManager()
movieService := services.NewMovieServiceManager(movieRepository)
movieResult := movieService.ShowMovieName()
return mvc.View{
Name: "movie/index.html",
Data: movieResult,
}
}文件文件web/views/movie/index.html
<h2>{{.}}</h2>文件main.go
package main
import (
"goland/project/web/controllers"
"github.com/kataras/iris"
"github.com/kataras/iris/mvc"
)
func main() {
app := iris.New() // 1. 创建iris框架
app.Logger().SetLevel("debug") // 2. 设置debug模式
app.RegisterView(iris.HTML("./web/views", ".html")) // 3. 注册模板
// 4. 其他初始化操作,比如数据库,session初始化
// 5. 注册控制路由
mvc.New(app.Party("/hello")).Handle(new(controllers.MovieController))
// 6. 启动服务
app.Run(
iris.Addr("localhost:8080"), // 启动服务在8080端口
//iris.WithoutVersionChecker, // 启动时禁止检测框架版本差异
iris.WithoutServerError(iris.ErrServerClosed), // 忽略服务器错误
iris.WithOptimizations, // 让程序自身尽可能的优化
)
}写回答
2回答
-
慕粉1311528564
2020-02-15
app.RegisterView(iris.HTML("./web/views", ".html")) // 3. 注册模板
这里./web/views需要使用绝对路径。我的是mac系统 /Users/u/GolandProjects/imooc-iris/web/views
00 -
Cap
2019-09-05
nice,非常好。
00
相似问题