diff --git a/iris.go b/iris.go index 659b6065..ab0b8fa5 100644 --- a/iris.go +++ b/iris.go @@ -1820,7 +1820,6 @@ func (api *muxAPI) Favicon(favPath string, requestPath ...string) RouteNameFunc if len(requestPath) > 0 { reqPath = requestPath[0] } - api.Head(reqPath, h) return api.Get(reqPath, h) } diff --git a/template.go b/template.go index 5387166c..81514521 100644 --- a/template.go +++ b/template.go @@ -104,6 +104,15 @@ type ( // Directory sets the directory to load from // returns the Binary location which is optional func (t *TemplateEngineLocation) Directory(dir string, fileExtension string) *TemplateEngineBinaryLocation { + if dir == "" { + dir = DefaultTemplateDirectory // the default templates dir + } + if fileExtension == "" { + fileExtension = DefaultTemplateExtension + } else if fileExtension[0] != '.' { // if missing the start dot + fileExtension = "." + fileExtension + } + t.directory = dir t.extension = fileExtension return &TemplateEngineBinaryLocation{location: t} @@ -111,6 +120,10 @@ func (t *TemplateEngineLocation) Directory(dir string, fileExtension string) *Te // Binary sets the asset(s) and asssets names to load from, works with Directory func (t *TemplateEngineBinaryLocation) Binary(assetFn func(name string) ([]byte, error), namesFn func() []string) { + if assetFn == nil || namesFn == nil { + return + } + t.location.assetFn = assetFn t.location.namesFn = namesFn // if extension is not static(setted by .Directory) diff --git a/websocket.go b/websocket.go index 49f30dfb..d027370c 100644 --- a/websocket.go +++ b/websocket.go @@ -201,7 +201,9 @@ func (s *websocketServer) serve() { case join := <-s.join: s.joinRoom(join.roomName, join.websocketConnectionID) case leave := <-s.leave: - s.leaveRoom(leave.roomName, leave.websocketConnectionID) + if _, found := s.websocketConnections[leave.websocketConnectionID]; found { + s.leaveRoom(leave.roomName, leave.websocketConnectionID) + } case msg := <-s.messages: // message received from the websocketConnection if msg.to != All && msg.to != NotMe && s.rooms[msg.to] != nil { // it suppose to send the message to a room