Change:
"github.com/golang/glog" "golang.org/x/net/html" <ins> "golang.org/x/net/html/atom" </ins> "github.com/GoogleCloudPlatform/kubernetes/pkg/util" ) <del> // tagsToAttrs states which attributes of which tags require URL substitution. </del> <ins> // atomsToAttrs states which attributes of which tags require URL substitution. </ins> // Sources: http://www.w3.org/TR/REC-html40/index/attributes.html //          http://www.w3.org/html/wg/drafts/html/master/index.html#attributes-1 <del> var tagsToAttrs = map[string]util.StringSet{ "a":          util.NewStringSet("href"), "applet":     util.NewStringSet("codebase"), "area":       util.NewStringSet("href"), "audio":      util.NewStringSet("src"), "base":       util.NewStringSet("href"), "blockquote": util.NewStringSet("cite"), "body":       util.NewStringSet("background"), "button":     util.NewStringSet("formaction"), "command":    util.NewStringSet("icon"), "del":        util.NewStringSet("cite"), "embed":      util.NewStringSet("src"), "form":       util.NewStringSet("action"), "frame":      util.NewStringSet("longdesc", "src"), "head":       util.NewStringSet("profile"), "html":       util.NewStringSet("manifest"), "iframe":     util.NewStringSet("longdesc", "src"), "img":        util.NewStringSet("longdesc", "src", "usemap"), "input":      util.NewStringSet("src", "usemap", "formaction"), "ins":        util.NewStringSet("cite"), "link":       util.NewStringSet("href"), "object":     util.NewStringSet("classid", "codebase", "data", "usemap"), "q":          util.NewStringSet("cite"), "script":     util.NewStringSet("src"), "source":     util.NewStringSet("src"), "video":      util.NewStringSet("poster", "src"), </del> <ins> var atomsToAttrs = map[atom.Atom]util.StringSet{ atom.A:          util.NewStringSet("href"), atom.Applet:     util.NewStringSet("codebase"), atom.Area:       util.NewStringSet("href"), atom.Audio:      util.NewStringSet("src"), atom.Base:       util.NewStringSet("href"), atom.Blockquote: util.NewStringSet("cite"), atom.Body:       util.NewStringSet("background"), atom.Button:     util.NewStringSet("formaction"), atom.Command:    util.NewStringSet("icon"), atom.Del:        util.NewStringSet("cite"), atom.Embed:      util.NewStringSet("src"), atom.Form:       util.NewStringSet("action"), atom.Frame:      util.NewStringSet("longdesc", "src"), atom.Head:       util.NewStringSet("profile"), atom.Html:       util.NewStringSet("manifest"), atom.Iframe:     util.NewStringSet("longdesc", "src"), atom.Img:        util.NewStringSet("longdesc", "src", "usemap"), atom.Input:      util.NewStringSet("src", "usemap", "formaction"), atom.Ins:        util.NewStringSet("cite"), atom.Link:       util.NewStringSet("href"), atom.Object:     util.NewStringSet("classid", "codebase", "data", "usemap"), atom.Q:          util.NewStringSet("cite"), atom.Script:     util.NewStringSet("src"), atom.Source:     util.NewStringSet("src"), atom.Video:      util.NewStringSet("poster", "src"), </ins> // TODO: css URLs hidden in style elements. }

Discussion:
The ApiServer proxy wraps partial HTML responses to serve a complete HTML document in the proxy response. This is problematic for applications which expect HTML fragments, such as with AngularJS templates. Example: This is the response for a from the unproxied server: But the proxied response is: This issue is blocking