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
相似问题