loader/http.go
func (l *HTTPTemplateFetcher) FetchTemplate(path string) (TemplateSource, error) {
	u, err := url.Parse(path)

	if err != nil {
		return nil, fmt.Errorf("error parsing given path as url: %s", err)
	}

	if u.IsAbs() {
		return nil, ErrAbsolutePathNotAllowed
	}

	// XXX Consider caching!
	for _, base := range l.URLs {
		u := base + "/" + path
		res, err := http.Get(u)
		if err != nil {
			continue
		}

		return NewHTTPSource(res)
	}
	return nil, ErrTemplateNotFound
}
func (l *HTTPTemplateFetcher) FetchTemplate(path string) (TemplateSource, error) {
	u, err := url.Parse(path)

	if err != nil {
		return nil, fmt.Errorf("error parsing given path as url: %s", err)
	}

	if u.IsAbs() {
		return nil, ErrAbsolutePathNotAllowed
	}

	// XXX Consider caching!
	for _, base := range l.URLs {
		u := base + "/" + path
		res, err := http.Get(u)
		if err != nil {
			continue
		}

		return NewHTTPSource(res)
	}
	return nil, ErrTemplateNotFound
}
// FetchTemplate returns a TemplateSource representing the template at path
// `path`. Paths are searched relative to the urls given to NewHTTPTemplateFetcher()